in reply to Re: Regex "(un)Knowledge" (loop)
in thread Regex "(un)Knowledge"

But in this case how can i read a file!!?

Considering that i must read all the content of the file at once in order to catch multiline comments!!

Replies are listed 'Best First'.
Re^3: Regex "(un)Knowledge" (loop)
by tye (Sage) on Jul 15, 2003 at 18:27 UTC

    I think you misunderstood something.

    You can/should read the file all at once with my approach (I already assumed you were doing this based on comments elsewhere in the thread and because, as you note above, you need to match multi-line comments).

    Just use your existing file-reading code. I only rewrote the code you provided so you only need to replace that part of your code (except I didn't bother to repeat the close statement). (update:) nor the file reading code (my mind simply blocked out the that part of your code).

                    - tye

      Hmm i see.. but i cannot make this run!! Iīm a little bit of newbie in the Perl Language!!!!!

      Can you explain me why does my code donīt work!??

      $file="Finger.java"; open(F,"$file"); undef $/; my %hash; my $re= qr{ ( /\* .*? \*/) | ( \/\/[^\n]*) | " (?: [^"\\]* | \\. )* " | ' (?: [^'\\]* | \\. )* ' | . [^/"']* }xs; while( /$re/g ) { $hash{pos($_)}= $1; } my @nl; while( /\n/g ) { push @nl, pos($_); } my $ln= 1; while( /$re/g ) { $ln++ while $nl[$ln-1] < pos($_); $hash{$ln}= $1; } @keys=sort {$a<=>$b} (keys %hash); foreach $key (@keys) { $value=$hash{$key}; $hash_ordenada{$key}=$value; print "Line: $key\t$value\n"; }

      Thank you very much!

      NUNO

        I was hoping someone would step up to this request. I'm reluctant to spoon feed too much in this situation.

        The biggest problem is you didn't successfully determine what parts of the seperate code samples to merge together. You left out the reading of the file. You included my first while loop which was meant to be replaced by my latter two while loops.

        I suggest you read each chunk of code and try to understand what it is doing. If you get stuck on a part, then ask for some help (if it seems too small of a question to post as a node, then post it to your scratchpad and ask in the chatterbox).

        Where is $_ set? Can you identify the places where $_ is used even though it doesn't appear in the source code?

                        - tye