I put a regular expression into $/ but it didn't work. What's wrong?

$/ must be a string, not a regular expression. Awk has to be better for something. :-)

Actually, you could do this if you don't mind reading the whole file into memory:

    undef $/;
    @records = split /your_pattern/, <FH>;
The Net::Telnet module (available from CPAN) has the capability to wait for a pattern in the input stream, or timeout if it doesn't appear within a certain time.

    ## Create a file with three lines.
    open FH, ">file";
    print FH "The first line\nThe second line\nThe third line\n";
    close FH;
    ## Get a read/write filehandle to it.
    $fh = new IO::File "+<file";
    ## Attach it to a "stream" object.
    use Net::Telnet;
    $file = new Net::Telnet (-fhopen => $fh);
    ## Search for the second line and print out the third.
    $file->waitfor('/second line\n/');
    print $file->getline;

Back to perlfaq6