New hash/hashref arguments handling function.
This commit is contained in:
parent
6f622105dc
commit
635d7182b4
29
Utils.pm
29
Utils.pm
@ -31,7 +31,7 @@ use strict;
|
|||||||
|
|
||||||
our @ISA = qw(Exporter);
|
our @ISA = qw(Exporter);
|
||||||
our @EXPORT = qw();
|
our @EXPORT = qw();
|
||||||
our @EXPORT_OK = qw(path_join resolve_path check_directory load_file save_file superchomp trimspace lead_zero string_in_array blind_untaint title_case sentence_case is_defined_numeric rfc822_date get_proc_size find_bin untaint_path read_pid write_pid);
|
our @EXPORT_OK = qw(path_join resolve_path check_directory load_file save_file superchomp trimspace lead_zero string_in_array blind_untaint title_case sentence_case is_defined_numeric rfc822_date get_proc_size find_bin untaint_path read_pid write_pid hash_or_hashref);
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
@ -385,6 +385,33 @@ sub rfc822_date {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## @method $ hash_or_hashref(@args)
|
||||||
|
# Given a list of arguments, if the first argument is a hashref it is returned,
|
||||||
|
# otherwise if the list length is nonzero and even, the arguments are shoved
|
||||||
|
# into a hash and a reference to that is returned. If the argument list is
|
||||||
|
# empty or its length is odd, and empty hashref is returned.
|
||||||
|
#
|
||||||
|
# @param args A list of arguments, may either be a hashref or a list of key/value
|
||||||
|
# pairs to place into a hash.
|
||||||
|
# @return A hashref.
|
||||||
|
sub hash_or_hashref {
|
||||||
|
my $len = scalar(@_);
|
||||||
|
return {} unless($len);
|
||||||
|
|
||||||
|
# Even number of args? Shove them into a hash and get a ref
|
||||||
|
if($len % 2 == 0) {
|
||||||
|
return { @_ };
|
||||||
|
|
||||||
|
# First arg is a hashref? Return it
|
||||||
|
} elsif(ref($_[0]) eq "HASH") {
|
||||||
|
return $_[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
# No idea what to do, so give up.
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# OS specific functions
|
# OS specific functions
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user