Here is my solution, others will differ...

# always print $! on error so you can see the cause
open( INFILE,"books.txt" ) || die "Cann't Open: $!";

while( <INFILE> ) {
        chomp; # remove the newline
        next unless ($_); # skip blank lines

        # split the line by the seperator
        my @parts= split(/ by /, $_);

        # die unless exactly 2 parts are found
        die "Can't split properly" unless ( @parts == 2 );

        print "$author - $book\n";
}

close INFILE;


Rob


-----Original Message-----
From: Denham Eva [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 05, 2002 9:42 AM
To: BeginnersPerl (E-mail)
Subject: Regex Problem - please help


Hello Listers,

I am struggling to get this right. Beginner in perl, so please forgive
ignorance, but the regular expressions are confusing.

I am trying to read in a file, with content as follows
---snip---
1984 by George Orwell
A BEND IN THE RIVER by V.S. Naipaul
A CLOCKWORK ORANGE by Anthony Burgess
A DANCE TO THE MUSIC OF TIME (series) by Anthony Powell
A FAREWELL TO ARMS by Ernest Hemingway
A HANDFUL OF DUST by Evelyn Waugh
---end snip---
The idea is to list by Author ie.

George Orwell - 1984
V.S. Naipaul - A BEND IN THE RIVER 
Anthony Burgess - A CLOCKWORK ORANGE 
Anthony Powell - A DANCE TO THE MUSIC OF TIME (series) 
Ernest Hemingway - A FAREWELL TO ARMS 
Evelyn Waugh - A HANDFUL OF DUST

OK my code thus far is:-

--- Spin Code ---
open(INFILE,"books.txt")||die "Cann't Open";

while(<INFILE>) {
  $_ =~ m/[A-Fa-z0-9]/ || die "Sorry Don't Work"; # Here regex is for
everything
# But I would like to chop it up to divide Authors from Books
# Then to add them together with:- print "$author - $Book" -:for instance
# In the end to write the output to a seperate file.

  $index = $_;

  print $index;
}
--- Close Code ---
Now this produces a whole string, which I know, unfortunately I am not to
good with the regex part.

Any help will be much appreciated.

Denham Eva
Oracle DBA
In UNIX Land
On a quiet Night, you can hear the Windows machines reboot.


############################################################################
#########
This e-mail message has been scanned for Viruses and Content and cleared 
by MailMarshal
For more information please visit www.marshalsoftware.com
############################################################################
#########

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to