in reply to Extract field after keyword

Not sure what your input file looks like, as you only give one 'field'. However, assuming it's like the __DATA__ below (even with varying whitespace), you could do something like this:

use strict; use warnings; my $to_find = 'Pretty Woman'; while ( <DATA> ) { if ( /$to_find:\s*(\d+)/ ) { print "Slot for $to_find: $1\n"; } } __DATA__ Label Location Start Time End Time NKL0289 MSL6000 Trinity: 7 18:45 20:45 NKL0111 MSL7000 A Fish Called Wanda: 22 11:11 13:00 XKL0ABCC MSL8000 Pretty Woman: 55 18:13 20:12

dave

Replies are listed 'Best First'.
Re: Re: Extract field after keyword
by jamen_98 (Initiate) on Mar 19, 2004 at 20:36 UTC
    The file is very basic... FILE:
    Report on Used Media Cell Manager: Trinity.mydomain.com Creation Date: 3/19/2004 10:05:17 AM Label Location Pool Name Protection Used [MB] + Total [MB] Last Used [NFK100L2] [MSL6000 Trinity: 7] MSL6000 None + 0.06 204800.00 3/19/2004 10:04:2
    All the code follows:
    #$slotnumber=0; $dpdrivloc = "Trinity"; open(DPSLOTFILE, "< c:\\test.txt") or die "Can't open test.txt: $!"; while (<DPSLOTFILE>) { if (/$dpdrivloc:\s*(\d+)/) { print "Slot for today is: $1\n"; } } #system("c:\\ipbat.bat"); close DPSLOTFILE;

      So, it works? (It does for me.)

      Not sure from your reply. Do you still have a problem?

      dave

        I wrote a simple text file using the data fields I put in the post. Then ran what you gave me (dave) against that file, and it was correct. I got output.
        The file that I am using is exported from another program as an ASCII file named test.txt or whatever I choose. The file might be the culperate.
        I'll have to play with the file some. Are there any known issues with this??? Any info is appreciated.

        Edited by BazB. Remove pre tags.