Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Help Me to Sort out from this

by madtoperl (Hermit)
on Mar 17, 2017 at 13:12 UTC ( [id://1185033]=note: print w/replies, xml ) Need Help??


in reply to Help Me to Sort out from this

Hi Nansh
Eventhough I did not understand your correct issue, assuming that you have some problem on taking the authors only from a line. May be you have to look into using split function for getting the desired output

Having more sample data/expected output will help to provide more specific answers..

Replies are listed 'Best First'.
Re^2: Help Me to Sort out from this
by Nansh (Acolyte) on Mar 21, 2017 at 09:33 UTC
    I have File Like this.

    BOOK_Author AYN RAND, ERNEST HEMINGWAY, JOAN DIDION

    +RAY BRADBURY, GEORGE R.R. MARTIN

    +GILLIAN FLYNN

    Famous_singer Linkinpark, Lilwayne, Nikiminaj,

    +seanpaul, Akon, Tpain

    +Emenim

    DESIRED OUTPUT

    AYN RAND,ERNEST HEMINGWAY,JOAN DIDION,RAY BRADBURY,GEORGE R.R.MARTIN,GILLIAN FLYNN

    Linkinpark,Lilwayne,Nikiminaj,seanpaul,Akon,Tpain,Emenim

    I need to match the AUTHORS and SINGERS from different lines and need to put them in a respective array say @author and @singer. I tried alot. I couldnt do that so please anyone help me to solve this.

      Have you reviewed your course material? I would expect that it covers everything you need to approach this problem.

      Please help us give you better answers. Show us what code you have already written, and explain to us what it does and where it fails to do what you need.

      Also review push, split and likely perlsyn.

      I tried alot.

      Why not provide a couple of the algorithms which you tried? Someone might then be able to point out where you were going wrong. Perhaps even one of those algorithms was a valid one and it was merely your code which was flawed. But again, with neither algorithm nor code to view we will never know.

      The key to this kind of problem is that when the line begins with a "continue-command"(plus) you want to process the rest of the line using the last "state" you were in, but when it doesnt begin with a "continue-command"(plus) you want to capture the new state, process the rest of the line with the new state, and remember that new state as the last_state for any following "continue-command"(plus) lines. Something like this

      my $last_state=''; while (my $line= <DATA>) { chomp $line; next unless ($line); if (substr($line,0,1) eq '+') { # if line starts with a plus use last_state to process process($last_state,substr($line,1)); } else { # otherwise set last_state and process with it my @parts=split(' ',$line,2); $last_state=$parts[0]; process($last_state,$parts[1]); } } # line sub process { my $state=shift; my $input=shift; ... do stuff based on $state and $input ... } # process

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1185033]
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: (4)
As of 2024-03-29 15:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found