Thierry Vignaud
and 1 contributors

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