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 "oops\n", 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 called\n"; 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