---
name: "Audio::File::Tag"
section: "3pm"
platform: "linux"
package: "libaudio-file-perl"
version: "0.11-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Audio::File::Tag"
---

# Audio::File::Tag(3pm)

abstracts the tag of an audio file

## NAME

Audio::File::Tag - abstracts the tag of an audio file

## DESCRIPTION

Audio::File::Tag is the base class for other file format independent tag classes like Audio::File::Flac::Tag or Audio::File::Ogg::Tag. You shouldn't use this class yourself except if you're writing your own file format dependent subclass.

## METHODS

### new

Constructor. Creates a new Audio::File::Tag object. You shouldn't use this method yourself. It is called by the filetype-dependant subclasses of Audio::File::Type automatically.

### init

Initializes the object. It's called by the constructor and empty by default. It's ought to be overwritten by subclasses.

### title

Using **title()** you can get or set the tags title field. If called without any argument it'll return the current content of the title field. If you call **title()** with an scalar argument it will set the title field to what the argument contains. The methods **artist()**, **album()**, **comment()**, **genre()**, **year()**, **track()**, **disc()** and **total()** are called in the same way.

### artist

Set/get the artist field in the files tag.

### album

Set/get the album field in the files tag.

### comment

Set/get the comment field in the files tag.

### genre

Set/get the genre field in the files tag.

### year

Set/get the year field in the files tag.

### track

Set/get the track field in the files tag.

### disc

Set/get the disc field in the files tag.

### total

Set/get the total number of tracks.

### all

Set/get all tags. To set the tags pass a hash reference with the names of the tags as keys and the tag values as hash values. Returns a hash reference if no argument is specified.

### is\_empty

Returns whether all tag fields are empty or not.

### save

Saves the changed tag information. Not yet implemented.

## TODO

- Implement writing tags

  ## AUTHOR

Florian Ragwitz \<flora@cpan.org\>

## COPYRIGHT AND LICENSE

Copyright (C) Florian Ragwitz

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
