Help with a perl subroutine regex


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with a perl subroutine regex
# 8  
Old 12-01-2008
This is also wrong:

foreach my $line (<FILE>) {

to properly loop through a file you use "while":

while (my $line = <FILE>) {

the use of a subroutine in your code is also a case of over engineering. The regexp matching could just be done inside the loop.
# 9  
Old 12-01-2008
Code:
#!/usr/bin/perl

use strict;
use warnings;

my $filename = 'data.txt';
open FILE, $filename or die "could not open $filename for reading: $!";
while (my $line (<FILE>) {
   print $line if ($line =~ m/blue/);
}
close FILE;

# 10  
Old 12-02-2008
Thanks Everyone!

This worked for me

Quote:
#!/usr/bin/perl -w


use strict;

our $filename = "carrol.txt";

open FILE, $filename or die("could not open $filename for reading: $!");

foreach my $line (<FILE>) {
chomp $line;
my $matched_line = &find_match($line);

if ($matched_line) {

print "$matched_line\n";

}

}

sub find_match {
my $grep = $_[0];
if ( $grep =~ m/Walrus|Carpenter|Oyster/ ) {
return $grep;
}

}

close FILE;
# 11  
Old 12-02-2008
Any idea how I would accomlish the following;

i need a regex that will poplate $first with the first word and then $second with the second word after a space. How can i then return the two variables?

Any help would be greatly appreciated. Been trying to do this all day.

Quote:
sub find_match {
my $grep = $_[0];
if (($first, $second) =$grep =~ /(\w)\s/(\w)/) {
return $grep;
}

}
# 12  
Old 12-03-2008
Do you want to report the first word and the second word with space in the middle?

Or first word and then a second word that follows a space?

I'm sure you can find a few ways to do this, as evident in this thread (while, foreach...)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Perl subroutine returning different values in HPUX

HI , I am running a program on hpux in perl. I am encountering a strange issue where when i print a variable in the sub which is returning it , it prints a different value but when i call it and store value in a variable it gives a different o/p. the sub is sub CheckConfigFilePattern ... (4 Replies)
Discussion started by: Jcpratap
4 Replies

2. Shell Programming and Scripting

perl -Calling the Subroutine Only if the condition is met

Hello All, I am in the process of learning perl.I have a perl script and based on the arguments passed it would the appropriate subroutine that is defined in the script. Now, I need to check a value that is defined in the Environment variables and should call the subroutine only if the... (1 Reply)
Discussion started by: filter
1 Replies

3. Shell Programming and Scripting

Problem saving return value of subroutine in perl

Hi all, I have this code #This program read the triplets from file named "data" into #an array of array. use strict; use warnings; use Data::Dumper; use Graph; use Graph::Subgraph; my @S; while (<>) { push @S, ; } print "-----TRIPLETS-------\n"; print Dumper \@S; #Make... (6 Replies)
Discussion started by: rushadrena
6 Replies

4. Shell Programming and Scripting

perl - return an object from subroutine - Net::LDAP

Hi all, I'm not even sure a person can do this in perl, seems like you should be able to though. Here's the error IO::Socket::INET: connect: Operation now in progress at server_search.pl line 256, <DATA> line 466. Here's the perl code... sub ldap_new{ $nl = Net::LDAP->new( "$_" ) or... (3 Replies)
Discussion started by: jtollefson
3 Replies

5. Shell Programming and Scripting

Perl - pass file to subroutine

Hello All, I have 2 perl sub-routines. my $myDir = myDir_path; my $file; sub convert(){ system ("./$myConvertScript >> $myDir/$file_CONV" ); $file2 = $myDir/$file_CONV; } sub addDB(){ open(CONF, $config) or die "Cannot Open $config for reading. "; while(<CONF>){... (1 Reply)
Discussion started by: ad23
1 Replies

6. Programming

perl: Subroutine question

Hi everyone, I have given up finally trying to find a way to do this. I have a subroutine called LoginFirst where I am starting a new SSH session. I have bunch of subroutines, each one of them uses a (or I have to create a new SSH constructor everytime) ssh connection to get some value so ... (2 Replies)
Discussion started by: dummy_code
2 Replies

7. Shell Programming and Scripting

Calling perl subroutine from shell script (sh)

Hi, ive a perl script, where it has a subroutine clear() in it, and i've one shell script which runs in background, from that shell script i wanted to call subroutine which is in perl script, that's perl script is not module, just simple script. Eg: perl script <test> #!... (4 Replies)
Discussion started by: asarunkumar
4 Replies

8. Shell Programming and Scripting

Why Perl Subroutine Passed In Variable is 1?

The following subroutine prints 1 instead of the content of the Equipment variable. Can someone tell me why? #!c:/perl/bin/perl.exe # use strict 'vars'; my $Equipments = "data/equips.txt"; unless (open(EQUIP_FH, "$Equipments")) { print "errors: $Equipments\n"; # This line prints... (1 Reply)
Discussion started by: tqlam
1 Replies

9. Shell Programming and Scripting

calling perl subroutine from perl expect module

All, Is it possible to call a subroutine from the perl expect module after logging to a system that is within the same program. My situation is I need to run a logic inside a machine that I'm logging in using the expect module, the logic is also available in the same expect program. Thanks,... (5 Replies)
Discussion started by: arun_maffy
5 Replies

10. Shell Programming and Scripting

Converting perl regex to sed regex

I am having trouble parsing rpm filenames in a shell script.. I found a snippet of perl code that will perform the task but I really don't have time to rewrite the entire script in perl. I cannot for the life of me convert this code into something sed-friendly: if ($rpm =~ /(*)-(*)-(*)\.(.*)/)... (1 Reply)
Discussion started by: suntzu
1 Replies
Login or Register to Ask a Question