#! perl use strict; use Data::Dumper ; my %defines; my $flag_in_define = 0; my $name; $ARGV[0] .= ".rpt"; open(FH,"<$ARGV[0]") or die "Cant open"; MAIN_LOOP: while () { if (m/^\.define (.*)/) { $flag_in_define = 1; $name = $1; next MAIN_LOOP; } if (m/^\.\./) { $flag_in_define = 0; next MAIN_LOOP; } if ($flag_in_define) { chomp; $defines{$name} .= $_; next MAIN_LOOP; } } close FH; print Dumper(\%defines); #### C:\test>junk5 junk $VAR1 = { 'get_input' => ' select key, key1, key2, passkey3, passkey4, print_name into input_booking_seq, fax_header, file_no, input_print_rates, myNoteId, print_name from ed_table where ed_table.tag = \'BOOK\' and ed_table.key = \'PRINT\' and ed_table.user_id = user', 'get_user_info' => ' select user_loc,user_name, user_company, into user_location, user_name, user_company, from sec_header where user_id = lower(substr(user,5,10))', 'loktabs' => ' loc_table book_tab, book_hazmat, custdata2, edit_table, book_rates, print_table in share update mode' };