Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: Split array and join with results

by perlnoobster (Sexton)
on Aug 22, 2012 at 21:02 UTC ( [id://989146]=note: print w/replies, xml ) Need Help??


in reply to Re: Split array and join with results
in thread Split array and join with results

Hi Bill, I apologize for not being clear, cheekuperl provided a great solution however the list of phone models are in a text file called mobiles.txt there are several columns In the text file however the phone models will always be in the first column, the phone models need a color assigned to them which can be retrieved via the colpr array, the phone models are one per line in the first column some models have white space e.g Nokia 8250 or Samsung galaxy nexus etc I hope this reply is insightful?? Thank you :-)
  • Comment on Re^2: Split array and join with results

Replies are listed 'Best First'.
Re^3: Split array and join with results
by BillKSmith (Monsignor) on Aug 23, 2012 at 04:01 UTC

    Put list of colours in __DATA__ where it can easily be changed. Get the name of the phone file from the command line. Extract the model from each record of the file with a regular expression. (My regexp assumes that the 'columns' are seperated by TABs.) The processing is the same as before.

    use strict; use warnings; use Readonly; # Assume input file name on command line (default is 'phones.txt). Readonly::Scalar my $PHONE_FILE => $ARGV[0] || 'phones.txt'; Readonly::Array my @COLOURS => <DATA>; # Assume columns seperated by tabs, all other whitespace is significa +nt. Readonly::Scalar my $GET_MODEL => qr{\A ( [^\t]+ ) }x; open my $PHONES, '<', $PHONE_FILE or die "Cannot open $PHONE_FILE\n"; while (my ($phn) = <$PHONES> =~ $GET_MODEL) { foreach my $colr (@COLOURS) { print "\n$phn $colr"; } print "\n==="; } close $PHONES __DATA__ baby blue baby pink black dark blue brown dark purple green orange hot pink light purple red white yellow

    Note: Readonly is not necessarey. Its purpose here is to assure the reader that those symbols are logically constants.

    Bill
      on further inspection it seem as though its the $colr value in the print out function that seems to be inserting the line break?  print OUT "\n$phn $colr $title\n"; Please can someone help me?

        $colr gets its value (including the newline) from @colours. If you prefer, you can chomp (refer perldoc -f chomp) $colr before you print it.

        Bill

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://989146]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (4)
As of 2024-04-25 12:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found