in reply to list lines not found in config (while+if)
Executing your script with the provided files yields the following results for me:
> perl script.pl file1 file2 cd, 2343 ef, 1253 ij, 2343
Is this not the expected result? I suspect your issue is on your command line.
On a side note, it is very dangerous to pass a command line argument directly to a two-argument open as you have done - it allows execution of arbitrary code. You should also check out using the pragmas strict and warnings to save you some potential headaches. Might I suggest the following code?
#!/usr/bin/perl # # use strict; use warnings; my $file1 = shift; my $file2 = shift; my $match = 0; open(IN, "<", $file2) or die "Cannot open file $file2 $!\n"; while(<IN>){ chomp($_); my $s_line = $_; open(INPUT, "<", $file1) or die "Cannot open file $file1 $!\n"; while(<INPUT>){ chomp($_); my $str = $_; if($s_line =~ /$str/){ $match = 1; } } close(INPUT); if($match == 0){ print "$s_line\n"; } $match = 0; } close(IN);
|
|---|