OUTPUT:package RegexInput; sub new{ my ($class,$file)=@_; my $fh; open $fh,$file; my $self = { FH=>$fh, leftover=>"" }; bless $self,$class; } sub get_line{ my $self=shift; my $regex=shift; my $fh=$self->{FH}; my $string=$self->{leftover}; while (<$fh>) { $string.=$_; if ($string=~/$regex/s) { $self->{leftover}=$'; return $string; } } $self->{leftover}=""; return $string; } package main; my $buf = new RegexInput($0); while (my $line=$buf->get_line(qr/\n\}/)) { print $line,"\n","="x50,"\n"; }
package RegexInput; sub new{ my ($class,$file)=@_; my $fh; open $fh,$file; my $self = { FH=>$fh, leftover=>"" }; bless $self,$class; } ================================================== sub get_line{ my $self=shift; my $regex=shift; my $fh=$self->{FH}; my $string=$self->{leftover}; while (<$fh>) { #print $_; $string.=$_; if ($string=~/$regex/s) { $self->{leftover}=$'; return $string; } } $self->{leftover}=""; return $string; } ================================================== package main; my $buf = new RegexInput($0); while (my $line=$buf->get_line(qr/\n\}/)) { print $line,"\n","="x50,"\n"; } ================================================== ==================================================
In reply to Re: Regexing an input stream...
by Anonymous Monk
in thread Regexing an input stream...
by sergio
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |