Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Get certain information from MP3::Tag's autoinfo()

by thmsdrew (Scribe)
on Aug 07, 2012 at 19:03 UTC ( #986059=perlquestion: print w/ replies, xml ) Need Help??
thmsdrew has asked for the wisdom of the Perl Monks concerning the following question:

MP3::Tag's autoinfo() works as follows:

($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->aut +oinfo(); # or $info = $mp3->autoinfo();

Is there a way to only return specific values from this method? I only want $album and $artist. As I see it, I have to use

($title, $track, $artist, $album) = $mp3->autoinfo();,

which defines $title and $track unnecessarily. Can I accomplish this? I have a feeling it might have something to do with using a hash reference. Not too sure though.

Comment on Get certain information from MP3::Tag's autoinfo()
Select or Download Code
Re: Get certain information from MP3::Tag's autoinfo()
by toolic (Bishop) on Aug 07, 2012 at 19:19 UTC
    From MP3::Tag POD:
    autoinfo() returns an array with the information or a hashref. The hash has four keys 'title', 'track', 'artist' and 'album' where the information is stored. If comment, year or genre are found, the hash will have keys 'comment' and/or 'year' and/or 'genre' too.

    Try:

    my $info = $mp3->autoinfo(); # hashref print $info->{album}; print $info->{artist};

    See also:

      So that uses less unnecessary space than my initial way of doing it? Because I'm referencing the hash and not actually declaring all of the variables that I don't need?

        You could do this:

        (undef, undef, $artist, $album) = $mp3->autoinfo();

        But I like toolic's solution better.

Re: Get certain information from MP3::Tag's autoinfo()
by Kenosis (Priest) on Aug 07, 2012 at 20:37 UTC

    Here's another option:

    my ( $artist, $album ) = ( $mp3->autoinfo )[ 2, 3 ];

      Thanks, I rather like this solution!

        You're most welcome, thmsdrew! Glad it worked for you...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://986059]
Approved by toolic
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2015-07-06 22:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (84 votes), past polls