## ExifTool Object Data Members

The following table lists the data members of the ExifTool object. (If this was C++, these would be documented next to the definitions in the header file, but this is Perl, so I couldn't do that...)

Aside from the variables defined below, there may be other temporary variables added by individual modules. Temporary variables are identified by at least one lower case letter in their name, and are deleted before reading or writing each new image. Make, Model and CameraType are temporary variables like this, but these three are special because they are initialized to an empty string instead of being deleted at the start of processing for each image, which allows them to be tested without having to check for an undefined value.

> Name | Description
> --- | ---
> ADD_DIRS | Hash of parent directories for each directory added during writing (Note: entry may exist but be undefined for top-level directory!)
> BASE | Absolute position of current image in containing file (for example, when processing JPEG image in FujiFilm RAF file)
> CameraType | Camera type used for decoding some Olympus tags
> CHANGED | Number of tags changed during writing
> CUR_LANG | Current language-Charset code for localized descriptions, but note that the default language 'en' does not have a Charset designation appended because there are no special characters in these descriptions so it doesn't have to be reloaded when Charset changes.
> DEL_GROUP | Hash of groups to delete. Value is 1 to delete group completely, or 2 if tags were added back after deleting the group.
> DEL_PREVIEW | Flag to delete preview from after JPEG EOI
> DIR_COUNT | Hash reference for counters of various types of directorys (ICC, IPTC,...)
> DIR_NAME | Name of directory currently being processed
> DOC_COUNT | Number of embedded documents processed while extracting
> DOC_NUM | Current document number while extracting (0, '' or undef for the main document)
> DoneID3 | Set to 1 if audio file was scanned for ID3, or 2 if there was an ID3v1 trailer found
> DROP_TAGS | Flag to exclude "Drop" tags when writing
> DUPL_TAG | Hash of last used tag key index numbers for each duplicate tag.
> DYGROUP | Hash of dynamic group name list for each tag. List item 0 is the family 1 group name (ie. IFD name or XMP namespace), with a leading '+' to add value to the existing group 1 name. List item 1 is the number for embedded documents (ie. 1, 2, etc)
> EDIT_DIRS | Hash of parent directories for each directory edited during writing (Note: entry may exist but be undefined for top-level directory!)
> EXIF_BYTE_ORDER | Byte ordering for main EXIF directory
> EXIF_DATA | EXIF data block (valid while reading from file)
> EXIF_POS | Position of EXIF data in file
> FILENAME | Name of input file while extracting (only if we opened it, '' otherwise)
> FILE_ORDER | Hash of numbers to give the sequence the tags were extracted from file, keyed by tag key
> FILE_EXT | File extension (JPG, PEF, AVI, etc...) May be undefined if file has no extension.
> FILE_TYPE | Root file format type (JPEG, TIFF, RIFF, etc...)
> FIRST_EXIF_POS | Position of first EXIF in file
> FOUND_TAGS | Found tags with proper case and order
> INDENT | Indent string for verbose output
> IO_TAG_LIST | List for output of requested tags in proper case and order
> LIST_TAGS | Hash of tag keys by tagInfo reference for active List-type tags. This hash is cleared at the start of processing for each directory. Not used during when writing.
> Make | Camera make set during reading and writing
> MAKER_NOTE_BYTE_ORDER | Byte order of extracted maker notes if extracted as a block.
> MAKER_NOTE_INFO | Used by Image::ExifTool::CanonRaw as temporary storage for maker note information when synthesizing maker notes from CRW file with the MakerNotes option.
> MAKER_NOTE_FIXUP | Fixup information for maker notes extracted with the MakerNotes option (unless MakerNotes option is 2). Used by SetNewValuesFromFile() to adjust offsets in maker note IFD
> Model | Camera model name set during reading and writing
> MOVED_KEY | Tag key of last tag replaced by a higher priority tag in a call to FoundTag().

> NEW_VALUE

> Hash of new value information keyed by tag info reference. Elements of new value information hash are:

> TagInfo | - | tag information reference
> DelValue | - | list of specific values to delete
> Value | - | list of values to add
> IsCreating | - | must be set for the tag to be added. otherwise just changed if it already exists
> Next | - | reference to next new value hash in linked list if there is more than one new value hash (for writing to different groups) for this tagInfo
> Save | - | flag set by call to SaveNewValues() if this value should be saved

> NewIPTCDigest | MD5 digest for most recently written IPTC data (undefined if IPTC doesn't exist or if it was deleted
> NO_LIST | Set if List tags shouldn't be accumulated into a list
> NO_UNKNOWN | Don't generate unknown tags automatically even if Unknown option is set
> NUM_FOUND | Number of tags found
> OPTIONS | ExifTool options
> PDF_CAPTURE | Used by PDF module to store information when writing

> PREVIEW_INFO

> Information about preview image used while writing JPEG images only. This is a reference to a hash with the following entries:

> BaseShift | - | shift for base of pointer offsets
> Data | - | data for PreviewImage to be written (may either be data for the old or new image, or 'LOAD' to indicate that the data must be loaded from outside the EXIF segment)
> Fixup | - | fixup for PreviewImage pointers when writing JPEG images
> IsValue | - | flag indicates that image was referenced as the value of an IFD pointer, which means the image must fit inside the EXIF segment
> Relative | - | flag to indicate that pointer offsets are relative

> PRIORITY | Hash of tag Priority values for current tag, keyed by tag name (not tag key!)
> PRIORITY_DIR | Name of priority IFD (ie. the IFD for the full resolution image)
> PROCESSED | Reference to hash of address/directory names which were processed during reading and/or writing
> RAF | Random access file object for reading from input file
> REQUESTED_TAGS | List of requested tags in original case
> REQ_TAG_LOOKUP | Hash for looking up requested tags (keys are lower case tag names)
> SAVE_NEW_VALUE | Hash of new value information which was overwritten after a call to SaveNewValues()
> SET_GROUP1 | Value to use for family 1 group name when new tags are found. May start with a '+' sign to add to existing group name
> TAG_INFO | Hash of tagInfo hash references, keyed by tag key
> TAGS_FROM_FILE | Flag used during extraction when called from SetNewValuesFromFile()
> TIFF_END | Location of end of regular TIFF file set by WriteExif()
> TIFF_TYPE | Type of TIFF data, only set if FILE_TYPE is TIFF. Valid values are APP1, APP3, TIFF, CR2, MRW, JP2, JPX, NEF, PEF, ORF or DNG.
> VALUE | Hash of raw tag values keyed by tag key
> WRITE_GROUPS | List of write groups in order of priority
> WRITE_PRIORITY | Hash of write priority values keyed by group name
> XMP_CAPTURE | Hash of tag information (value, attribute hash) keyed by XMP property path, used by XMP module during writing
> XMP_ERROR | Error string used by XMP module during writing
> XMP_NS | Hash of URI's keyed by namespace prefix, used by XMP module during writing to remember all used namespaces

<-- Back to ExifTool home page