Tom Allison wrote: > Matija Papec wrote: >> Tom Allison wrote: >> >>> I've been using the practice of putting something at the bottom of a >>> file for holding static data, like SQL, by calling a __DATA__ handle: >>> >>> my $sql = join('',(<DATA>)); >> >> #more efficient >> my $sql = do { local $/; <DATA> }; >> >> check perldoc perlvar if you want to know more about $/ >> >>> __DATA__ >>> select ..... >>> >>> >>> Is there any way to do this twice? >>> To define two sets of static SQL? >> >> >> I guess that you don't really want to read two times from <DATA> but >> to somehow separate text below __DATA__ >> >> (undef, my %static_sql) >> = split /#(\w+)\s+/, do { local $/; <DATA> }; >> >> use Data::Dumper; >> print Dumper \%static_sql >> >> __DATA__ >> #select1 >> select * from table1 .. >> >> #select2 >> select * from table2 .. > > I ended up with something like: > my $string = join('',(<DATA>)); > my ($sql1, $sql2) = split(/\nn\n/sm, $string); ^^^^^^^^^ You probably meant /\n\n/.
> But I like the $/ idea. You could set $/ to paragraph mode: my ( $sql1, $sql2 ) = do { local $/ = ''; <DATA> }; John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>