Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: Re: Regex "(un)Knowledge" (loop)

by nofernandes (Beadle)
on Jul 15, 2003 at 18:20 UTC ( [id://274504]=note: print w/replies, xml ) Need Help??


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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://274504]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (3)
As of 2024-04-26 00:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found