in reply to Record Separator affecting Regex

If you really need to redefine the record seperator, you could do something like this:

#!/usr/bin/perl use strict; use warnings; $/ = ";\n"; { local $/ = "\n"; while (my $line = <DATA> ){ $line =~ s/^#[^\r\n]*//g; # get rid of any comments print "Query: $line\n" if ($line !~ /^\s+$/); } } __DATA__ # one comment # two comment # another comment insert into table_name values(1, 'testing 1 2 3'); # more comments insert into table_name values (2, 'test &#149;');

Output:

Query: insert into table_name values(1, 'testing 1 2 3'); Query: insert into table_name values (2, 'test &#149;');

Replies are listed 'Best First'.
Re^2: Record Separator affecting Regex
by tadman (Prior) on Nov 07, 2002 at 19:56 UTC
    As a note, there's a way to check for "lines which are composed only of spaces" that I find much more succinct:
    print "Query: $line" if ($line =~ /\S/);
    Or more generically:
    next unless ($line =~ /\S/); print "Query: $line";
    "Not composed entirely of spaces" is equivalent to "contains a non-space character", at least in this context.