in reply to Re^11: Converting Oracle report language code into perl
in thread Converting Oracle report language code into perl

This is the point where I am getting stuck actually...and .define is not a single statement ...There are lot of in this file...Please suggest some solution
  • Comment on Re^12: Converting Oracle report language code into perl

Replies are listed 'Best First'.
Re^13: Converting Oracle report language code into perl
by BrowserUk (Patriarch) on Jun 27, 2007 at 13:28 UTC

    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.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Dear BrowserUk I am very much thankfull to you for your precious guidance and support.I have really troubled you guys but as you can see I am very less experienced in perl specially in regex....As you can see I have to create a new parser which will actually convert oracle report language into perl code so I need to work on each and every command of rpt file... take care :-)