LINUX CLASSES - PERL PROGRAMMING
How Does Perl Pattern Matching Work?
One mystery remains: What's this
(/^#/) stuff all about? Remember the
grep command, and the discussion of regular expressions? If
you think about it, the little Perl program in the previous example acts a lot like
grep,
since it sifts through each line and prints it if a pattern is matched.
In Perl, the forward slashes indicate that a pattern match is to be performed. The regular
expression inside the slashes defines the search pattern, and
$_ is the variable that the
search is performed on. In our case, the
^# inside the slashes means to match only lines
that begin with the pound sign.
So if we make the previous example a bit more generic, allowing it to get the search
pattern and file name from the command line, it will behave almost exactly like the grep
utility:
open MYFILE, $ARGV[1] or die "Can't open $ARGV[1]: $! \n";
while (<MYFILE>) {
if (/$ARGV[0]/) { print "MATCH: $_"; }
}
Learn More about Perl
We've barely scratched the surface of what you can do with the Perl language. Try the
man perl command to get more information on Perl, read Programming Perl by Larry
Wall (O'Reilly & Associates), the inventor of the Perl language, or visit the Perl Institute
Web site at http://www.perl.org.
Previous Lesson: Perl and Files
Next Lesson: Sending Email
[ RETURN TO INDEX ]
Comments - most recent first (Please feel free to answer questions posted by others!)
Srini ( 30 Sep 2014, 06:31)
How to extract the number which is present after AAA?
12345 AAA 67890
I need 67890 to be extracted.
Thanks.
manter ( 23 Dec 2012, 22:42)
sorry:
#!/usr/bin/perl
manter ( 23 Dec 2012, 22:41)
Majed, are you sure that the first line of your script goes like this:
#/usr/bin/perl
#
#or whatever the output of
#which perl is.
Majed ( 07 Dec 2011, 08:02)
forgot to put notify me about new comments on this page.
Majed ( 07 Dec 2011, 08:01)
i tried this perl script the output is:
srvmon var # ./anothertest.pl
./anothertest.pl: line 3: open: command not found
./anothertest.pl: line 4: syntax error near unexpected token `)'
./anothertest.pl: line 4: `while (<MYFILE>) {'
I welcome your comments. However... I am puzzled by many people
who say "Please send me the Linux tutorial." This website *is* your Linux Tutorial! Read everything here, learn
all you can, ask questions if you like. But don't ask me to send what you already have. :-)
NO SPAM! If you post garbage, it will be deleted, and you will be banned.
|
Copyright ©
by Bob Rankin
- Privacy Policy
All rights reserved - Redistribution is allowed only with permission.