NAME

ELF::Extract::Sections::Section - An Objective reference to a section in an ELF file.

VERSION

version 1.001000

SYNOPSIS

use ELF::Extract::Sections::Section;

my $s = ELF::Extract::Sections::Section->new(
    source => '/foo/bar.pl',
    name   => '.comment',
    offset => 45670,
    size   => 1244,
);

# prints a human friendly description
print $s->to_string;

# does likewise.
print "$s";

# Compare with another section ( preferably in the same file, meaningless otherwise )
if( $s->compare( $y , 'name' ) ){

}

# Unimplemented
$s->write_to ( file => '/tmp/out.txt' );

# Retuns the sections contents as a string
print $s->contents;

DESCRIPTION

Generally Intended for use by ELF::Extract::Sections as a meta-structure for tracking data, but generated objects are returned to you for you to deal with

METHODS

new

my $section = ELF::Extract::Sections::Section->new( %ATTRIBUTES );

4 Parameters, all required.

Returns an ELF::Extract::Sections::Section object.

to_string

my $string = $section->to_string;

returns Str description of the object

[ Section {name} of size {size} in {file} @ {start} to {stop} ]

compare

my $cmp_result = $section->compare( other => $other, field => $field );

2 Parameters, both required

other

ELF::Extract::Sections::Section: Item to compare with

field

Str['name','offset','size']: Field to compare with.

returns Int of comparison result, between -1 and 1

write_to

my $boolean = $section->write_to( file => $file );

UNIMPLEMENTED AS OF YET

file

Str|Path::Tiny: File target to write section contents to.

contents

my $string = $section->contents;

returns Str of binary data read out of file.

ATTRIBUTES

source

Str|Path::Tiny: Either a String or a Path::Tiny instance pointing to the file in mention.

name

Str: The ELF Section Name

offset

Int: Position in bytes relative to the start of the file.

size

Int: The ELF Section Size

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Kent Fredric <kentfredric@gmail.com>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.