server-1.12/lib/util.pl

81 lines
1.5 KiB
Perl

######################################################################
# subs
######################################################################
###
sub capitalize {
local($str) = $_[0];
local($head) = ord(substr($str,0,1));
local($tail) = substr($str,1);
$head = $head - 32 if $head >= 97 && $head ne '_';
return sprintf("%c%s",$head,$tail);
}
###
sub uncapitalize {
local($str) = $_[0];
local($head) = ord(substr($str,0,1));
local($tail) = substr($str,1);
$head = $head + 32 if $head <= 97 && $head ne '_';
return sprintf("%c%s",$head,$tail);
}
### user debug message
sub msg {
print STDERR $0.": ".$_[0]."\n" if $debug;
}
###
sub die {
$prog = &basename($0);
print STDERR $prog.": ".$_[0]."\n";
exit(1);
}
###
sub warn {
$prog = &basename($0);
print STDERR $prog.": ".$_[0]."\n" if ! $nowarn;
}
###
sub info {
$prog = &basename($0);
print STDERR $prog.": ".$_[0]."\n";
}
### basename of file
sub basename {
local($name) = shift;
local($ext) = shift;
if($name =~ /.*\/.*/) {
$name =~ s/.*\/(.*)$ext$/$1/;
} else {
$name =~ s/(.*)$ext$/$1/;
}
return $name;
}
###
sub dirname {
local($name) = shift;
$name =~ s/(^.*)\/.*$/$1/;
return $name;
}
### make uniq to array
sub uniq {
local(@list) = sort(@_);
local($item,$prev);
local(@uniq);
foreach $item (@list) {
push(@uniq,$item) if($item ne $prev);
$prev = $item;
}
return @uniq;
}
1;
### end of util.pl ###