English 中文(简体)
为什么在Perl的印刷产品产出之后,我有线索1?
原标题:Why do I get a trailing 1 after Perl s printf output?
  • 时间:2009-10-05 14:32:07
  •  标签:

在我执行以下守则时,有正确的日期:

10/05/2008
10/05/2009

当我使用<条码>而不是<条码>时,请参看。 我收到下列文件:

10/05/200910/05/20081
1

关于为什么<代码>印本/编码>的任何想法 打印<代码>1?


#!/usr/bin/perl

use strict; use warnings;

my ($from_date, $to_date) = to_from_dates();

print "$from_date
";
print "$to_date
";

sub to_from_dates {
    my ($day, $month, $year) = (localtime)[3,4,5];
    my $to_date   = sprintf "%02d/%02d/%04d", $month+1, $day, $year+1900;
    my $from_date = sprintf "%02d/%02d/%04d", $month+1, $day, $year+1899;
    return ($from_date, $to_date);
}
最佳回答

只有sprintfreturns aprintable Value. f<<<<<<<<<>>>>><<<<<>>>>>><>>>>>>>>>>>>>>>><>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://www.un.org/Depts/DGACM/index_french.htm

如果你只是从电话开始便删除<条码/代码>,那么你所显示的产出就是我所期望的产出。

sub to_from_dates {
    my ($day, $month, $year) = (localtime)[3,4,5];
    my $to_date=printf("%02d/%02d/%04d", $month+1, $day, $year+1900);
    # printed: 10/05/2009 (no carriage return)
    # $to_date =  1 ;
    my $from_date=printf("%02d/%02d/%04d", $month+1, $day, $year+1899);
    # printed: 10/05/2008 (no carriage return)
    # $from_date =  1 ;
    return ($from_date,$to_date);
}

($from_date,$to_date)=to_from_dates(); # returns ( 1, 1 )
# output: 10/05/200910/05/2008
print $from_date."
";                 # prints "1
"; <- first line feed
# output: 10/05/200910/05/20081

print $to_date."
";                   # prints "1
"; <- second line feed.
# output: 10/05/200910/05/20081
1

问题回答

如果你使用印刷版,Perl印刷线,并报到1号业务的结果,那么你将照录这一结果。 您可以做以下两种工作:/printf printf

Well, sprintf < 参看http://perldoc.perl.org/Functions/printf.html>rel=“nofollow noreferer”>。 表格的印刷(STDOUT/code>,按违约计算)和返回代码<1 如果成功的话。

因此,当你使用<条码>印本/代码>时,这两个日期都在执行<条码>时在屏幕上印刷,到<条码>到_日,然后在<条码>上打印<条码/条码>。 作为<代码>f的标语,始终如一(1,1)都是成功的。





相关问题