@tmp = split /\./, $screen_value;
if ( defined $tmp[1] ) {
    @vm = split //, $tmp[0];
    @vn = split //, $tmp[1];
}
else {
    @vm = defined $tmp[0] ? split //, $tmp[0] : ();
    @vn = ();
}
undef @tmp;
@tmp = split /\./, $self->{format};
@fm = split //, $tmp[0];
if ( defined $tmp[1] ) {
    @fn = split //, $tmp[1];
}

$vpos = $#vm;
for ( $i = $#fm ; $i >= 0 ; $i-- )
{    # treat '-' and '&' as '#' -  not clear what these chars mean
    my $c = $fm[$i];
    if ( $c eq '#' || $c eq '-' || $c eq '&' )
    {
        if ($vpos >= 0) {
            my $num = $vm[$vpos];
            if ( !$self->is_number($num) ) {
                return ( $screen_value, -1 );
            }
            $mout[$i] = $num;
        } else {
            $mout[$i] = ' ';
        }
    } else {
        $mout[$i] = $c;
    }
    $vpos--;
}

$vpos = 0;
for ( $i = 0 ; $i <= $#fn ; $i++ ) {
    if ( $fn[$i] eq '#' && $vpos <= $#vn ) {
        my $num = $vn[$vpos];
        if ( !$self->is_number($num) ) {
            return ( $screen_value, -1 );
        }
        $nout[$i] = $vn[$vpos];
    }
    elsif ( ( $fn[$i] eq '#' || $fn[$i] eq '-' )
        && $vpos > $#vn )
    {
        $nout[$i] = '0';
    }
    else {
        $nout[$i] = $fn[$i];
    }
    $vpos++;
}

# calculate if too many to display

$mout = join '', @mout;
$nout = join '', @nout;
$out = $mout . '.' . $nout;

return ( $out, 0 );

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 66:

=pod directives shouldn't be over one line long! Ignoring all 23 lines of content

Around line 1132:

=pod directives shouldn't be over one line long! Ignoring all 3 lines of content