`
Tristan_S
  • 浏览: 378557 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

perl - 基础

    博客分类:
  • perl
阅读更多
第二章 标量数据
    #!/usr/bin/perl -w
    $pi = 3.141592654;
    $circ = 2 * $pi * 12.5;
    print "The circumference of a circle of radius 12.5 is $circ.\n";



 print "Enter first number: ";
    chomp($one = <STDIN>);
    print "Enter second number: ";
    chomp($two = <STDIN>);
    $result = $one * $two;
    print "The result is $result.\n";






 print "Enter a string: ";
    $str = <STDIN>;
    print "Enter a number of times: ";
    chomp($num = <STDIN>);
    $result = $str x $num;
    print "The result is:\n$result";





第三章 列表和数组
print "Enter some lines, then press Ctrl-D:\n"; # or maybe Ctrl-Z
    @lines = <STDIN>;
    @reverse_lines = reverse @lines;
    print @reverse_lines;





   @names = qw/ fred betty barney dino wilma pebbles bamm-bamm /;
    print "Enter some numbers from 1 to 7, one per line, then press Ctrl-D:\n";
    chomp(@numbers = <STDIN>);
    foreach (@numbers) {
      print "$names[ $_ - 1 ]\n";
    }



print sort <STDIN>;


第四章 子程序

sub marine {
$n += 1; #全局变量$n
print "Hello, sailor number $n!\n";
}

&marine; #输出Hello, sailor number 1!
&marine; #输出Hello, sailor number 2!
&marine; #输出Hello, sailor number 3!
&marine; #输出Hello, sailor number 4!



$n = &max(44,15,22);
print "$n";

sub max{
	if(@_!=2){
print "WARNING! &max should get exactly two arguments!\n";
return;
}

	if($_[0] > $_[1]){
		print "$_[0]\n";
	}else{
		print "$_[1]\n";
	}
	return $_[0] + $_[1];
}


    sub total {
      my $sum;  # private variable
      foreach (@_) {
        $sum += $_;
      }
      return $sum;
    }

my @fred = qw{ 1 3 5 7 9 };
my $fred_total = &total(@fred);
print "The total of \@fred is $fred_total.\n";
print "The numbers from 1 to 1000 add up to ", &total(1..1000), ".\n";



写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字
sub total {
  my $sum;  # private variable
  foreach (@_) {
    $sum += $_;
  }
  $sum;
}

sub average {
  if (@_ == 0) { return }
  my $count = @_;
  my $sum = &total(@_);               # from earlier exercise
  $sum/$count;
}
sub above_average {
  my $average = &average(@_);
  my @list;
  foreach $element (@_) {
    if ($element > $average) {
      push @list, $element;
    }
  }
  @list;
}

my @fred = &above_average(1..10);
print "\@fred is @fred\n";
print "(Should be 6 7 8 9 10)\n";
my @barney = &above_average(100, 1..10);
print "\@barney is @barney\n";
print "(Should be just 100)\n";


第五章 输入与输出
while(<STDIN>){
print "I saw2 $_\n";
}


while(<>){
chomp;
print "It was $_ that I saw!\n";
}


输出到文件
$output = "test.txt";
open FH,">", "$output";
print FH "Tristan Blenheim 101\n";
print FH "Betty Boop 201\n";
print FH "Igor Chevsky 301\n";
print FH "Norma Cord 401\n";
print FH "Jonathan DeLoach 501\n";
print FH "Karen Evich 601\n";
close FH;


文件-> 控制台
open IN, "<", "test.txt" or die;
@a = <IN>;
close IN;
print "@a";


格式化数据
open FH, "<", "test.txt";
foreach $line(<FH>){
	$line =~ s/\x0D?\x0A?$//; #取得一行,去掉结尾换行符
	@datas = split(" ",$line); #把空格当中分隔符,取得数据
	print "@datas\n";
}



输出到错误文件
运行命令chapter5.pl 2> err.txt
print "Hello, World!\nabc"; print STDERR "Hi\n";



第六章 哈希
#my %last_name = qw{
#  fred flintstone
#  barney rubble
#  wilma flintstone
#};
my %last_name;
$last_name{"fred"} = "flintstone";
$last_name{"barney"} = "rubble";
$last_name{"wilma"} = "flintstone";

print "Please enter a first name: ";
chomp(my $name = <STDIN>);
print "That's $name $last_name{$name}.\n";


写一个程序,读入一串单词(一个单词一行)◆,输出每一个单词出现的次数。(提示:如果某个作为数字使用值是
undefined 的,会自动将它转换为0。)如果输入单词为fred, barney, dino, wilma, fred(在不同行中),则输出的fred 将为
3。作为额外的练习,可以将输出的单词按照ASCII 排序。
my(@words, %count, $word);     # (optionally) declare our variables
chomp(@words = <STDIN>);
foreach $word (@words) {
  $count{$word} += 1;          # or $count{$word} = $count{$word} + 1;
}
foreach $word (keys %count) {  # or sort keys %count
  print "$word was seen $count{$word} times.\n";
}



exists 函数
my %last_name;
$last_name{"fred"} = "flintstone";
$last_name{"barney"} = "rubble";
$last_name{"wilma"} = "flintstone";

my $name = <STDIN>; #读入下一行;
chomp($name);
if(exists $last_name{$name}){
print "Exists";
}else{
 print "not exists";	
}



第十一章 文件检验
if(-e "test.txt"){
	print "e";
}


第十二章 目录操作
列出某个文件夹下的文件
print "Which directory? (Default is your home directory) ";
chomp(my $dir = <STDIN>);
if ($dir =~ /^\s*$/) {         # A blank line
  chdir or die "Can't chdir to your home directory: $!";
} else {
  chdir $dir or die "Can't chdir to '$dir': $!";
}
my @files = <*>;
foreach (@files) {
  print "$_\n";
}



删除文件
foreach (@ARGV) {
      unlink $_ or warn "Can't unlink '$_': $!, continuing...\n";
    }


移动文件
    use File::Basename;
    use File::Spec;
    my($source, $dest) = @ARGV;
    if (-d $dest) {
      my $basename = basename $source;
      $dest = File::Spec->catfile($dest, $basename);
    }
    rename $source, $dest
      or die "Can't rename '$source' to '$dest': $!\n";




第十一章 字符串和排序
数字排序
my @numbers;
while (<>) {
  push @numbers, split;
}

foreach (sort { $a <=> $b } @numbers) {
  printf "%20g\n", $_;
}


字母排序
my @letters;
while (<>) {
  push @letters, split;
}

foreach (sort { $a cmp $b } @letters) {
  printf  "$_\n";
}



第十四章 进程管理
调用系统命令
 chdir "c:/" or die "Can't chdir to root directory: $!";
    exec "dir" or die "Can't exec dir: $!";




  • hp.rar (23.3 KB)
  • 下载次数: 1
分享到:
评论

相关推荐

    Centos7 离线perl-CPAN rpm包

    4. **perl-Digest-1.17-245.el7.noarch.rpm**: 这是Perl的Digest模块,是其他如Digest::SHA等模块的基础,提供了一些基本的哈希函数,比如MD5。1.17是模块版本,245是RPM包的版本,el7表示适用于CentOS 7,noarch...

    linux 离线安装perl-IPC-Cmd

    首先,你需要确保你已经安装了基础的Perl环境。在大多数Linux发行版中,这可以通过包管理器如`apt`(Ubuntu/Debian)或`yum`(CentOS/RHEL)来完成: ```bash # 对于Ubuntu/Debian sudo apt-get update sudo apt-...

    strawberry-perl-5.32.1.1-64bit.msi和openssl-1.1.1-stable-SNAP-202

    Perl是一种强大的解释型、交互式、面向对象的脚本编程语言,广泛应用于系统管理、...同时,掌握OpenSSL的使用和配置也是网络安全和加密编程的基础。通过安装Perl并熟悉OpenSSL,开发者可以构建出安全、可靠的网络应用。

    perl-5.30.3.tar.gz随便下载,不涨价哦

    Perl是高级的、通用的、解释型的、动态的编程语言,它的全称是 Practical Extraction and Reporting Language。Perl 5.30.3 是 Perl 的一个版本,此版本发布于2020年,它提供了许多改进和修复,旨在提高性能和稳定性...

    perl-Tk向导

    最基础的Perl-Tk程序是从一个简单的“Hello World”窗口开始。以下是一个示例代码: ```perl use Tk; my $mw = MainWindow-&gt;new; $mw-&gt;title("Hello World"); my $label = $mw-&gt;Label(-text =&gt; "Hello World")-&gt;...

    ActivePerl-5.8.4.810-MSWin32-x86

    标题“ActivePerl-5.8.4.810-MSWin32-x86”指的是一款专为Windows操作系统设计的Perl解释器——...总的来说,ActivePerl为Windows用户提供了强大且易用的Perl环境,为bluetool这样的依赖Perl的工具提供了运行基础。

    strawberry-perl-5.30.0.1-64bit.rar

    标签部分为空,这意味着没有额外的分类信息,我们将专注于Perl和Strawberry Perl的基础知识。 压缩包子文件的文件名称"strawberry-perl-5.30.0.1-64bit.msi"表明安装程序是一个Microsoft Installer (MSI) 文件。MSI...

    perl-HTTP-Server-Simple

    在Perl的世界里,HTTP-Server-Simple库提供了一个基础的HTTP服务器框架,可以处理GET、POST等基本的HTTP请求方法。它设计简洁,易于理解和使用,使得程序员能够专注于编写业务逻辑,而不用关心网络通信的底层细节。...

    perl-centos7.rar

    在CentOS 7中,Perl不仅是一个单独的编程语言,也是许多系统工具和服务的基础,例如系统日志分析工具Logwatch、Web服务器Apache的配置解析、邮件处理系统等。因此,确保Perl的正确安装和更新对于系统管理和维护至关...

    perl-mingw32-0.1-x86

    1. **Perl语言基础**:了解Perl语法、数据类型、控制结构、函数库等基本概念。 2. **Mingw32环境**:理解Mingw32如何在Windows平台上模拟Linux/Unix环境,包括编译器、链接器和其他工具的使用。 3. **Win32 API编程*...

    ActivePerl-5.14.2

    它在标准Perl的基础上增加了许多功能,包括Windows平台上的兼容性增强、预编译的二进制包、自动更新机制以及与各种开发工具的集成。ActivePerl使得在Windows上使用Perl变得更加容易,尤其适合企业级应用。 **3. ...

    net-snmp-perl-test_SNMPMIB_perlsnmp_

    总的来说,"net-snmp-perl-test_SNMPMIB_perlsnmp_"这一主题涵盖了网络管理的基础知识和实践技巧,对于网络管理员和系统集成商来说,深入理解和应用这些内容,无疑将大大提高他们的工作效率和问题解决能力。

    ActivePerl-5.16.3.1603-MSWin32-x64-296746.zip

    总的来说,这个压缩包提供了在Windows 64位系统上运行Perl程序的基础,特别适合那些需要处理文本数据、自动化任务或者与Simulink集成的工作。通过ActivePerl,用户可以利用Perl的强大功能,结合Simulink的建模能力,...

    perl-5.004.tar.gz

    Perl 5.004虽然是较早的版本,但仍然包含了许多基础和核心功能,如面向对象编程、模块系统、异常处理等。学习Perl可以从这个版本开始,逐步理解其基本语法和特性,然后再过渡到更新的版本,如Perl 5.28或5.32,以...

    perl-DBI-1.40-5.i386.rar

    然而,这只是基础步骤,实际使用时还需要根据目标数据库选择相应的DBD驱动,并正确配置数据库连接参数。例如,如果要连接MySQL,还需安装`DBD::mysql`模块。 总之,Perl DBI是Perl开发者与数据库交互的重要工具,它...

Global site tag (gtag.js) - Google Analytics