App-1234567891

 view release on metacpan or  search on metacpan

1234567891  view on Meta::CPAN

#!/usr/bin/perl 
use 5.014 ; use warnings ; 
use Getopt::Std ; getopts 'd:f' , \my %o  ; 
use FindBin qw[ $Script ] ; 
use utf8 ; 
use Scalar::Util qw[ looks_like_number ] ; 
 
$ARGV[0] //= 20 ;
$o{d} //= 1 ;
my $bk = ( $o{f} ? ' ' :' ' ) x $o{d} ; # 空白文字を $o{d}個連結する。 全角空白と半角空白を左に書いた。
my ($n1,$n2) = $ARGV[0] =~ m/(\d+)-(\d+)/ ? ($1,$2) : exists $ARGV[1] ? @ARGV : (1,$ARGV[0]) ; 
exit if map {say "'$_' seems not a number."} grep { ! looks_like_number $_ } ($n1,$n2) ;

my $out = '' ; 
for ( $n1 .. $n2 ) { 
  my $c = s/0{$o{d},}$//ro =~ s/^$/0/ro ; # 文末の1個以上の0を除去して、もしも全部消えたら0にする。
  $c = substr $bk . $c , -$o{d} , $o{d} ; 
  $c =~ y/0123456789 /0123456789 / if $o{f} ; 
  $out .= $c ; 
}

binmode STDOUT, ":utf8" ; 
say $out ;
exit ; 

no utf8 ; 

## ヘルプの扱い
sub VERSION_MESSAGE {}
sub HELP_MESSAGE {
  use FindBin qw[ $Script ] ; 
  $ARGV[1] //= '' ;
  open my $FH , '<' , $0 ;
  while(<$FH>){
    s/\$0/$Script/g ;
    print $_ if s/^=head1// .. s/^=cut// and $ARGV[1] =~ /^o(p(t(i(o(ns?)?)?)?)?)?$/i ? m/^\s+\-/ : 1;
  }
  close $FH ;
  exit 0 ;
}

=encoding utf8

=head1 1234567891 

 1234567891 N2 
 1234567891 N1 N2  

   N2 までに相当する数を生成して、隙間なく1桁ずつ並べる。下位の文字が0なら0でない最も右の数を取り出す。
   N1 と N2 は、最初の数値 と 最後の数値である。負の数を与えても良い(オプション指定と見なされない工夫が必要)。

使用例 : 

1234567891.pm  view on Meta::CPAN

package App::1234567891 ;  
our $VERSION = '0.011' ; 
our $DATE = '2025-03-18T15:20+09:00' ; 

=encoding utf8

=head1 NAME

App::1234567891 - Yield the sequence like '12345678911234567892...' to know the text length by comparison. 

=head1 SYNOPSIS

This module provides a Unix-like command `F<1234567891>'. 

=head1 DESCRIPTION



( run in 0.448 second using v1.01-cache-2.11-cpan-49f99fa48dc )