Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello, Pretty new to Perl so please go lightly: I have a file that looks like this (without the
's at the end of each line.
Order|09/12/2001|Product| Address|Email|Username
How do I break this out so that each field is a variable. I then want to insert each variable into a mysql table, which seems to be the easy part. I just can't figure out how how to open the file and get each field to convert to a variable. Thanks to all ! Craig

Replies are listed 'Best First'.
Re: Assigning scalar to each field in a flat file database
by dthacker (Deacon) on Mar 08, 2002 at 03:31 UTC
    Hi Craig, Thanks for stopping by. Please consider trying the following things.
    • Follow the tutorials link to the File Input and Output tutorial
    • read the tutorial and try the excercises
    • check Super Search for other file input and output questions that might apply
    If you are still having trouble, please post the code you are having problems with. Tell us what you expected the code to do and what the code is actually doing.

    Monks generally love to help people who are working on a problem. Show your work and you will be helped!

    Dave


    Code On!
Re: Assigning scalar to each field in a flat file database
by webadept (Pilgrim) on Mar 08, 2002 at 06:55 UTC
    You are looking for the "split" command. You can find that in most document areas for Perl. For your example here you could use :
    my($type, $date, $itemtype, $address, $email, $username) = split /\|/ +, $line;
    or something of that nature.

    Just a hint though for future stuff, generally most monks are around for stuff that may not be evident from basic liturature look ups. This is a pretty common task and you could find the answer pretty quick in the Camel book. Also there is a great book that I refer to all the time, CoriolisOpen Press Black Book Perl.. ISBN 1 57610-465-6. They have a website at www.coriolis.com if you are interested and your local store doesn't carry a copy.

    hope that helps

    Glenn H.
    webadept.net