所有
我正试图让底部的代码看起来像一张支票。你能帮我解决问题吗?
谢谢, 弗兰克
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$chkno $chkno
$first $last
$addr[0]
$addr[1]
$phone $date
Pay to the
Order of: $payee $amount
For: $memo Stamped Signature
nova> perl proj3_3.pl
Use of comma-less variable list is deprecated at proj3_3.pl line 48.
Name "main::date" used only once: possible typo at proj3_3.pl line 24.
Name "main::last" used only once: possible typo at proj3_3.pl line 12.
Name "main::payee" used only once: possible typo at proj3_3.pl line 27.
Name "main::phone" used only once: possible typo at proj3_3.pl line 21.
Name "main::amount" used only once: possible typo at proj3_3.pl line 30.
Name "main::first" used only once: possible typo at proj3_3.pl line 9.
Name "main::memo" used only once: possible typo at proj3_3.pl line 33.
What is your Check Number? asdf
What is your First Name? asdf
What is your Last Name? adsf
What is your street address (i.e. 555 Anywhere St.)? asdf
What is your city, state, zip code (i.e. Los Angeles, CA, 90210)? as
What is your Phone Number? df
What is the Date? asdf
Who is the Payee? asd
What is the Check Amount? fa
What is the Check's Purpose (MEMO)? sdf
asdf asdf
$first $last
$addr[0]
$addr[1]
$phone $date
Pay to the
Order of: $payee $amount
For: $memo Stamped Signature
.
format STDOUT_TOP =
--------------------------------------------------------------
编辑...抱歉,对此不熟悉。这是我的代码:
#!/usr/bin/perl -w
use FileHandle
print "What is your Check Number? ";
chomp($chkno = <STDIN>);
print "What is your First Name? ";
chomp($first = <STDIN>);
print "What is your Last Name? ";
chomp($last = <STDIN>);
print "What is your street address (i.e. 555 Anywhere St.)? ";
chomp($addr[0] = <STDIN>);
print "What is your city, state, zip code (i.e. Los Angeles, CA, 90210)? ";
chomp($addr[1] = <STDIN>);
print "What is your Phone Number? ";
chomp($phone = <STDIN>);
print "What is the Date? ";
chomp($date = <STDIN>);
print "Who is the Payee? ";
chomp($payee = <STDIN>);
print "What is the Check Amount? ";
chomp($amount = <STDIN>);
print "What is the Check's Purpose (MEMO)? ";
chomp($memo = <STDIN>);
#print "? ";
#chomp($ = <STDIN>);
#print "? ";
#chomp($ = <STDIN>);
# @>>>> right-justified
# @|||| centered
# @####.## numeric field holder
# @* multiline field holder
# now this line format will automatically apply to CHECK
format STDOUT =
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$chkno $chkno
$first $last
$addr[0]
$addr[1]
$phone $date
Pay to the
Order of: $payee $amount
For: $memo Stamped Signature
.
# and this page header format will automatically apply to CHECK
format STDOUT_TOP =
--------------------------------------------------------------
.
write STDOUT; #send to the output
答案 0 :(得分:4)
格式由格式行和后面的变量组成(以逗号分隔):
#!/usr/bin/perl
use strict;
use warnings;
our $first = "Chas.";
our $last = "Owens";
our $chkno = "123456";
our @addr = ("123 Nowhere Lane", "Citysville, Townshire, 12345");
our $phone = "123-456-7890";
our $date = "2009-08-10";
our $payee = "Stack Overflow";
our $amount = "0.02";
our $amount_str = "no dollars and two cents";
our $memo = "my two cents worth";
write;
format STDOUT =
@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$first, $last, $chkno
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$addr[0]
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Date:
$addr[1]
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<
$phone, $date
Pay to the
Order of: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @#######.##
$payee, $amount
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< dollars
$amount_str
Signature
Memo: @<<<<<<<<<<<<<<<<<<<<<<<<<<< _________________________
$memo
.
也就是说,格式有一些非常糟糕的缺点,你应该使用不同的解决方案。另一种选择是使用Perl6::Form
。它是Perl 6格式草案的后端:
#!/usr/bin/perl
use strict;
use warnings;
use Perl6::Form;
my $first = "Chas.";
my $last = "Owens";
my $chkno = "123456";
my @addr = ("123 Nowhere Lane", "Citysville, Townshire, 12345");
my $phone = "123-456-7890";
my $date = "2009-08-10";
my $payee = "Stack Overflow";
my $amount = "0.02";
my $amount_str = "no dollars and two cents";
my $memo = "my two cents worth";
print form
"{<<<<<<<<<<<<<} {<<<<<<<<<<<<<<<<} {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}",
$first, $last, $chkno,
"{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<}",
$addr[0],
"{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} Date:",
$addr[1],
"{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} {<<<<<<<<<<<<<<<<<<<<<<<}",
$phone, $date,
"",
"Pay to the",
'Order of: {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} ${>>>>>>>.<<}',
$payee, $amount,
"{<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<} dollars",
$amount_str,
" Signature",
"Memo: {<<<<<<<<<<<<<<<<<<<<<<<<<<<} _________________________",
$memo;