in reply to Re^2: select elements in a list
in thread select elements in a list

When written as below, your method indeed does work.

while (<DATA>){ my @Elements = split(/;/,$_); if ($Elements[1] ne ' '){ print $_; } } __DATA__ AAD; ;CCR;365 TEC;UTF;TDE;450 TRE; ;FTE;164 TEC;URT;TDE;687 ERT; ;ETR;567 TEC;UGC;TDE;687

Prints:

TEC;UTF;TDE;450 TEC;URT;TDE;687 TEC;UGC;TDE;687

This of course prints to STDOUT. However, its success suggests that you have improperly opened INFILE and OUTFILE for reading and writing respectively. Check your open syntax against the perlfunc manpage, or online here.

Update: As another added thought, if your open syntax is correct, perhaps you do not have the proper file access privileges?

Replies are listed 'Best First'.
difference between excel and wordpad files
by steph_bow (Pilgrim) on Aug 07, 2007 at 09:44 UTC

    Sorry Dear Monks,

    I have just discovered my mistake

    It was because I had looked at the data in the excel file (as they were initally were, instead of looking at them in the wordpad format)

    What I gave you as input file was what I copied / pasted from the data opened in excel

    But when I opened in wordpad, the data were inside ""

    Instead of that :
    AAD; ;CCR;365 TEC;UTF;TDE;450 TRE; ;FTE;164 TEC;URT;TDE;687 ERT; ;ETR;567 TEC;UGC;TDE;687

    what was in reality was
    "AAD";" ";"CCR";365 "TEC";"UTF";"TDE";450 "TRE";" ";"FTE";164 "TEC";"URT";"TDE";687 "ERT";" ";"ETR";567 "TEC";"UGC";"TDE";687

    So I have modified my code :
    while (<INFILE>){ # the /^ indicates the begining of the research for $_ ($_ is unde +rstated here) my @Elements = split(/;/,$_); if ($Elements[1] ne '""'){ print OUTFILE $_; } }