Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^2: text to array

by torres09 (Acolyte)
on Jun 06, 2013 at 07:53 UTC ( [id://1037397]=note: print w/replies, xml ) Need Help??


in reply to Re: text to array
in thread text to array

#!/usr/local/bin/perl open (MYFILE, 'test1234.txt'); while (<MYFILE>) { chomp; @myNames= split(/\t/, $_); $i=0; print "@myNames \n"; while($i<=$#myNames) { $names12[$i]=@myNames[$i].','; $i++; } } print "@names12 \n"; exit;

this is what i did , so if you can point out the mistakes , it will help

Replies are listed 'Best First'.
Re^3: text to array
by space_monk (Chaplain) on Jun 06, 2013 at 08:02 UTC
    $names12[$i]=@myNames[$i].','; #should be $names12[$i]=$myNames[$i].',';

    Actually there's lots more issues in your program than this one. Its really a case of if you want to solve this properly, don't start from where you are at present! :-)

    Why are you splitting on tabs when you indicated you wanted to split out words before? The answers given in your previous question do things much more efficiently than your code, so what is wrong with them?

    Please give an example of the text you want to split and what you want it to look like at the end

    Something roughly like this will put all your data in @names12:

    # execute as perl -n program.pl < myTextFile #!/usr/bin/perl # get the words from current text block and push into array.... while (/(\w+)/g) { push @names12, $1; } END { # your array contains words, now add comma to printout print join(',', @names12); }
    If you spot any bugs in my solutions, it's because I've deliberately left them in as an exercise for the reader! :-)
Re^3: text to array
by Utilitarian (Vicar) on Jun 06, 2013 at 08:34 UTC
    If your words are tab separated, the following should work
    #!/usr/local/bin/perl use strict; use warnings; open (my $wordfile, '<', 'test1234.txt')|| die "Could not open test123 +4.txt, $!"; while (<$wordfile>){ print join ',', split(/\t/, $_); exit; }
    print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."

      it does not work , stops after first line of document

        Sure, you say that, but you don't show 10 lines of file , you can use  perl -MData::Dump -MFile::Slurp -e " dd scalar read_file shift, { qw/ binmode :raw / }; "  tenlinefile > tenlinefileasperl.pl

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (3)
As of 2024-04-20 01:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found