SPUG:for help
John Subaykan
cansubaykan at hotmail.com
Thu Feb 6 19:10:59 CST 2003
If you are already using an if statement to check the string with a regular
expression, just use that to capture. Like this:
if ($line =~ /^\s+(\d+)\s+(.+?)\s+(\d+)$/) {
($part1, $part2, $part3) = ($1,$2,$3);
}
John
----Original Message Follows----
From: "Liu, Zhu" <Liu.Zhu at mayo.edu>
To: "'spug-list at mail.pm.org'" <spug-list at mail.pm.org>
Subject: SPUG:for help
Date: Wed, 29 Jan 2003 22:19:57 -0600
Hi, everybody, I experienced a very stupid simple problem for three hours. I
just want to extract three substrings from one string. In the beginning of
the string there are two spaces like
207 MFSNLASDEQDSVRLLAV---EAC--VNIAQLLPQEDLEALVMPTLRQAAEDKSWRVRYM 261
My part code is
if( $line =~ /^\s+\d+.*\d$/)
{
($part, $part2, $part3) = /\s+(\d+)\s(.*)\s+(\d+)/;
}
it always tells me "Use of uninitialized value in pattern match (m//)", so
if I use the following codes
if( $line =~ /^\s+\d+.*\d$/)
{
($emptypart, $start, $part, $end) = split /\s+/, $line, 4;
}
This time I can get the items.
So my question is why parentheses can't catch the substrings?
Thanks,
zhu liu
_____________________________________________________________
Seattle Perl Users Group Mailing List
POST TO: spug-list at mail.pm.org
ACCOUNT CONFIG: http://mail.pm.org/mailman/listinfo/spug-list
MEETINGS: 3rd Tuesdays, U-District, Seattle WA
WEB PAGE: www.seattleperl.org
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
More information about the spug-list
mailing list