Learning Perl学习笔记(1)第二章Scalar Da
简单的记录了书里的小例子,以及章节后的练习题的脚本。
If Control Structure(IF循环)
脚本如下:
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $line = <STDIN>; #这里变量前必须加上my,不知道是不是版本的原因,书里没有加my;但是这里如果不加就会报错
if ($line eq "\n") {
print "That was just a blank line!\n";
} else {
print "That line of input was: $line";
}
$ ./practice.pl
I am learning perl #这里输入字符I am learning perl,回车后会显示下面的返回结果
That line of input was: I am learning perl
$ ./practice.pl
#这里我直接打回车键,则会显示下面的结果
That was just a blank line!
While Control Structure(While语句)
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $count = 0;
while ($count < 10) {
$count += 2; #这里实际上是$count = $count + 2
print "count is now $count\n";
}
$ ./practice.pl
count is now 2
count is now 4
count is now 6
count is now 8
count is now 10
Learning perl 7th 第二章课后练习:
(1)第一题:
Write a program that computes the circumference of a circle with a radius of
12.5. Circumference is 2π times the radius (approximately 2 times 3.141592654).The answer you get should be about 78.5.
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $radius = 12.5;
my $circumference = 2 * 3.141592654 * $radius;
print $circumference."\n";
$ ./practice.pl
78.53981635
(2)第二题
Modify the program from the previous exercise to prompt for and accept a
radius from the person running the program. So, if the user enters 12.5 for the
radius, she should get the same number as in the previous exercise.
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $radius = <STDIN>;
my $circumference = 2 * 3.141592654 * $radius;
print $circumference."\n";
$ ./practice.pl
12.5
78.53981635
(3)第三题
Modify the program from the previous exercise so that, if the user enters a
number less than zero, the reported circumference will be zero, rather than negative.
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $radius = <STDIN>;
my $circumference = 2 * 3.141592654 * $radius;
if ($radius >= 0 ) {
print "$circumference\n";
} else {
print "0"."\n";
}
$ ./practice.pl
3
18.849555924
$ ./practice.pl
0
0
$ ./practice.pl
-4
0
(4)第四题
Write a program that prompts for and reads two numbers (on separate lines
of input) and prints out the product of the two numbers multiplied together.
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $number_one = <STDIN>;
my $number_two = <STDIN>;
my $multiplied_together = $number_one * $number_two;
print $multiplied_together."\n";
$ ./practice.pl
4
7
28
(5)第五题
Write a program that prompts for and reads a string and a number (on separate
lines of input) and prints out the string the number of times indicated by the
number on separate lines. (Hint: use the x operator.) If the user enters “fred” and
“3”, the output should be three lines, each saying “fred”. If the user enters “fred”
and “299792,” there may be a lot of output.
#!/usr/bin/perl
use warnings;
use strict;
use v5.24;
my $string_input = <STDIN>;
my $times = <STDIN>;
my $output_total = "$string_input" x $times;
print $output_total;
$ ./practice.pl
yan
3
yan
yan
yan
和书后的答案一对,虽然我运行的结果都没有错,但是比答案还是略逊了一点。因为答案里并不是仅仅输出的运行后的数字,还同时打出了“the result is:”这样的字符。嗯,还要继续努力~~