From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

#!/usr/bin/perl -w
# 315EHVb - cnv (CoNVert number bases) <NumberString> <FromBase> <ToBase>
# created by Pip Stuart <Pip@CPAN.Org>
# If you only supply a number, it will convert to hex if it's decimal &&
# decimal if it contains only valid hex digits. If you just provide one
# base parameter, it assumes that your number is already base10 && that
# you've supplied the ToBase. Otherwise, you need from && to parameters.
# Examples: `cnv 127 10 16` == "7F"
# `cnv 7F 16 3` == "11201"
# `cnv 11201 3 7` == "241"
# `cnv 241 7 10` == "127"
# Eror checking is minimal.
#
# Most source code should be Free!
# Code I have lawful authority over is && shall be!
# Copyright: (c) 2003-2004, Pip Stuart.
# Copyleft : This software is licensed under the GNU General Public
# License (version 2), && as such comes with NO WARRANTY. Please
# consult the Free Software Foundation (http://FSF.Org) for
# important information about your freedom.
use strict;
my $numb = shift;
if(!defined($numb) || $numb =~ /^-+[h\?]/i) {
die("USAGE: `cnv <NumberString> <FromBase> <ToBase>`\n");
}
print(cnv($numb, shift, shift));