Sorry, but you have exhausted my patience also.
CountZero posted a working solution to your problem and you have basically ignored it. All you have to do is add a couple of lines of code to that program to open the file and change one line and it does everything you have asked for and more.
Instead, you just keep posting the same few lines of broken code and asking the same question over and over, whilst making no attempt to understand what you are being told and offered.
Here is CountZero's program with two lines from your code added and one small change:
#! 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 (<FH>) { 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);
And here is what it looks like when I run it agianst your sample file.
C:\test>junk5 junk $VAR1 = { 'get_input' => ' select key, key1, key2, + passkey3, passkey4, print_name into input_booking_seq, f +ax_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, custd +ata2, edit_table, book_rates, print_table in share update mo +de' };
Download it, play with it, try and understand it. Please don't come back and ask for more until you do.
In reply to Re^13: Converting Oracle report language code into perl
by BrowserUk
in thread Converting Oracle report language code into perl
by denzil_cactus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |