Stephen Kelly wrote: > hi there > > i am trying to write a perl script to tidy up any lines in a file that > don't contain alphabetic characters or single instances of character. i've > noticed that the even lines are being skipped when read in eg 0,2,4,6 - > the script is run on window - any ideas? > > # Tidy Glossaries > > #!/usr/bin/perl -w >
when you are starting to learn Perl, you should try: use strict; in your script. > open INPUT, "d:/projects/perlscripts/oc_jp.txt" > or die "Can't open d:/projects/perlscripts/oc_jp.txt for reading > $!\n"; > open OUTPUT, ">>d:/projects/perlscripts/oc_jp_tidy.txt" > or die "Can't open d:/projects/perlscripts/oc_jp_tidy.txt $!\n"; > open OUTPUT1, ">>d:/projects/perlscripts/oc_jp_untidy.txt" > or die "Can't open d:/projects/perlscripts/oc_jp_untidy.txt $!\n"; you should declare a few variables to hold the name of the files: my $input = 'd:/projects/perlscripts/oc_jp.txt'; my $tidy = 'd:/projects/perlscripts/oc_jp_tidy.txt'; my $mess = 'd:/projects/perlscripts/oc_jp_untidy.txt'; you can then open them accordingly: open INPUT, $input or die "Can't open $input: $!\n"; open TIDY, ">>$tidy" or die "Can't create $tidy: $!\n"; open MESS, ">>$mess" or die "Can't create $mess: $!\n"; notice this improve readability and consequencely maintainability. > > > while (<INPUT>) > { > you got a line from the input file and store it in $_ but you never use $_ in your script which means the line is discarded > > chomp($test=<INPUT>); > you read another line from the input file and assigne it to $test. at time point, you have already read 2 lines. this is most likely the reason why you are seeing "even lines". each loop iteration, you read 2 lines. david -- s$s*$+/<tgmecJ"ntgR"tgjvqpC"vuwL$;$;=qq$ \x24\x5f\x3d\x72\x65\x76\x65\x72\x73\x65 \x24\x5f\x3b\x73\x2f\x2e\x2f\x63\x68\x72 \x28\x6f\x72\x64\x28\x24\x26\x29\x2d\x32 \x29\x2f\x67\x65\x3b\x70\x72\x69\x6e\x74 \x22\x24\x5f\x5c\x6e\x22\x3b\x3b$;eval$; -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>