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

use strict;
use Physics::Unit ':ALL';
our $VERSION = '0.60';
use base 'Exporter';
our @EXPORT_OK = qw/run_script name_info/;
sub run_script {
my $opts = shift;
if ($opts->{export}) {
my @files = GenPages();
print join(' ', @files), "\n";
}
if ($opts->{types}) {
print "$_\n" for ListTypes;
}
if ($opts->{units}) {
print "$_\n" for ListUnits;
}
foreach my $name (@ARGV) {
name_info($name);
}
}
my %classes = (
3 => 'Type',
2 => 'Unit',
1 => 'Reserved',
0 => 'Not Known',
-1 => 'Derived',
);
sub name_info {
my $name = shift;
my $class = Physics::Unit::LookName($name);
print "Name: $name\n";
my $u;
if ($class == 0) {
$u = GetUnit($name);
if (defined $u) { $class = -1; }
}
elsif ($class == 2) {
$u = GetUnit($name);
}
print "Class: $classes{$class}\n";
if ($class == -1 || $class == 2) {
print "Type: " . ( $u->type() || '' ) . "\n" .
"Definition: " . $u->def() . "\n" .
"Expanded: " . $u->expanded() . "\n";
}
print "\n";
}
1;