Jin Zhisong wrote: > HI, I'm looking for some advice of how to do this? > > > > I need to match some "variable" pattenrs so > > > > I define a $match variable and use it in the patterr below. > > However it didn't match anything for the sample data. > > > > If I change the match critia to hardcode > > next unless /\s+BCV\s+N/Grp/; it works > This line gives me a syntax error (Bareword found where operator expected) > if I > > next unless /\s+BCV\s+N\/Grp/; it didn't work > This regular expression matches one or more spaces, "BCV", one or more spaces and "N/Grp" (i.e., " BCV N/Grp") > > > so my question are > > 1. what is the proper way to use \ within regex? > You use '\' when you want to match literally some character that otheways would be interpreted as an operator ('+', '*', etc.) or end of regex (like '/' in the example above). Just to be sure, escape with '\' any non alphanumeric you want to match literally. > 2. can I use $match within regex , sun as / $match ../, should I quote > ' or "" for $match ? > You can use $match alone or ${match} (safer). > 3. can I use ${match} to make it more readiable? > Yes, it's better. > > > Thanks. > > Jason > > > > ===== code segment === > > my $sid = $ARGV[0]; > > my $type = $ARGV[1]; > > > > my @devices = find_avaiable_devices (); > > > > sub find_available_devices { > > my @finds = (); > > my $match = ( $type eq 'bcv' ) ? 'BCV' : 'RAID-5' ; > > > > open (AVAIL, "$symdev list -sid $sid -noport -$type |" ) or die > "cannot open $!\n"; > > > > while ( <AVAIL> ) { > > > > next unless /Not Visible.*\d\d[A-D]:[A-D][0-3]\s+${match}\s+N\/Grp/; > > > > my ($device , $type, $size) = ( split )[0,5,8]; > > push @finds , $device if defined $device ; > > } > > return @finds; > > > > > > __END__ > > > > # Sample output from ""$symdev list -sid $sid -noport -$type" below > > __DATA__ > > 05F3 Not Visible ???:? 16A:CF RAID-5 N/Grp'd RW > 9492 > > 05F4 Not Visible ???:? 01A:DF RAID-5 N/Grp'd RW > 9492 > > 05F5 Not Visible ???:? 16A:D10 RAID-5 N/Grp'd RW > 9492 > > 05F6 Not Visible ???:? 01A:C10 RAID-5 N/Grp'd RW > 9492 > > 05F7 Not Visible ???:? 16A:CF RAID-5 N/Grp'd RW > 9492 > > > > 05FA Not Visible ???:? 16A:D0 BCV N/Asst'd RW > 9492 > > 05FB Not Visible ???:? 16D:C0 BCV N/Asst'd RW > 9492 > > 05FC Not Visible ???:? 01A:C0 BCV N/Asst'd RW > 9492 > > 05FD Not Visible ???:? 16B:C0 BCV N/Asst'd RW > 9492 > > > > >
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/