『perl』学习

本文介绍了一个使用Perl进行目录下文件搜索的脚本示例,并演示了如何从C程序中调用Perl函数的方法。Perl脚本能够递归地搜索指定目录中的HTML文件。C调用Perl部分则通过使用Perl的C API实现了一个简单的函数调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 目录下文件搜索

#!/usr/bin/perl
&find_fileindir("/usr/local/apache/htdocs");
sub find_fileindir(){
  local($dir) = @_;
  opendir(DIR,"$dir"|| die "can't open this $dir");
  local @files =readdir(DIR);
  closedir(DIR);
  for $file (@files){
    next if($file=~m/\.$/ || $file =~m/\.\.$/);
    if ($file =~/\.(html|htm|shtml)$/i){
        print "$dir\/$file \n";
    }
    elsif(-d "$dir/$file"){
            find_fileindir("$dir/$file" );
    }
  }
}

2. C调用perl,或者,http://www.hailongchang.org/index.php/archives/365

要调用特定的 Perl 函数,可使用 call_argv 函数。该函数调用一个指定的函数,包括给该 Perl 函数提供任何参数的能力。

#include <EXTERN.h>
#include <perl.h>

static PerlInterpreter *my_perl;

int main(int argc, char **argv, char **env)
{
  char *print_args[] = {"This","is","a","list","of","printable","items","\n",NULL};

  my_perl = perl_alloc();
  perl_construct(my_perl);
  perl_parse(my_perl, NULL, argc, argv, NULL);
  PL_exit_flags |= PERL_EXIT_DESTRUCT_END;

  call_argv("printwrap", G_DISCARD, print_args);

  perl_destruct(my_perl);
  perl_free(my_perl);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值