MDK::Common::Various

NAME
SYNOPSIS
EXPORTS
SEE ALSO


NAME

MDK::Common::Various − miscellaneous functions

SYNOPSIS

use MDK::Common::Various qw(:all);

EXPORTS

first( LIST )

returns the first value. “first(XXX)” is an alternative for “((XXX)[0])”

second( LIST )

returns the second value. “second(XXX)” is an alternative for “((XXX)[1])”

top( LIST )

returns the last value. “top(@l)” is an alternative for $l[$#l]

to_bool( SCALAR )

returns a value in { 0, 1 }

to_int( STRING )

extracts the number from the string. You could use directly “int “11 foo””, but you’ll get Argument “11 foo” isn’t numeric in int. It also handles returns 11 for “foo 11 bar”

to_float( STRING )

extract a decimal number from the string

bool2text( SCALAR )

returns a value in { “true”, “false” }

bool2yesno( SCALAR )

returns a value in { “yes”, “no” }

text2bool( STRING )

inverse of “bool2text” and “bool2yesno”

chomp_( STRING )

non-mutable version of chomp: do not modify the argument, returns the chomp’ed value. Also works on lists: “chomp_($a, $b)” is equivalent to “chomp($a) ; chomp($b) ; ($a,$b)”

backtrace()

returns a string describing the backtrace. eg:

sub g { print “oopsn”, backtrace() }
sub f { &g }
f();

gives

oops
main::g() called from /tmp/t.pl:2
main::f() called from /tmp/t.pl:4

internal_error( STRING )

another way to “die” with a nice error message and a backtrace

noreturn()

use this to ensure nobody uses the return value of the function. eg:

sub g { print “g calledn”; noreturn }
sub f { print “g returns “, g() }
f();

gives

test.pl:3: main::f() expects a value from main::g(), but main::g() doesn’t return any value

SEE ALSO

MDK::Common