Link to home
Start Free TrialLog in
Avatar of Kamaraj Subramanian
Kamaraj SubramanianFlag for Singapore

asked on

perl + split + pipeline

I am using the following program to get the values from the pipeline separated file

But it is not working as i expected.

input file contains :

abcd|efd|adfa|adfASF|AsfF|asfA|fasFa|afasdfA|fAF|asfASF|asfasF|asf|adfasF|adfda

i need a output like this :

1 : abcd
2 : efd
3 : adfa
..
..
...
...

if i replace the | (pipe symbol) with , (comma) then it works fine.

please correct the program

thanks in advance

cheers
kamaraj.s


$LOGFILE = $ARGV[0];
open(LOGFILE) or die("Could not open log file.");
 
foreach $line (<LOGFILE>) {
    chomp($line);              # remove the newline from $line.
    # do line-by-line processing.
 
	 @values = split ('|',$line);
	 $count =0;
	 foreach my $val (@values) {
		 $count++;
		 print " $count :  $val\n";
		 }
}

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of ozo
ozo
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
perldoc perlre
       Metacharacters

       The patterns used in Perl pattern matching evolved from the ones
       supplied in the Version 8 regex routines.  (The routines are derived
       (distantly) from Henry Spencer's freely redistributable
       reimplementation of the V8 routines.)  See "Version 8 Regular
       Expressions" for details.

       In particular the following metacharacters have their standard
       egrep-ish meanings:

           \   Quote the next metacharacter
           ^   Match the beginning of the line
           .   Match any character (except newline)
           $   Match the end of the line (or before newline at the end)
           |   Alternation
           ()  Grouping
           []  Character class
Avatar of Kamaraj Subramanian

ASKER

When i post this quesion, i think about you only (ozo). B'cos you are master in perl.

thanks for your solution