"perl常用命令和函数集PDF:进程处理、数学、字符串、标量、数组、关联数组"

版权申诉
0 下载量 181 浏览量 更新于2024-02-20 收藏 134KB PDF 举报
Perl常用命令和函数集是一个包含了各种Perl语言常用命令和函数的文档。其中包括了一系列的进程处理函数,数学函数,字符串处理函数,标量转换函数,数组和列表函数,以及关联数组函数。下面对这些函数进行一一介绍。 一、进程处理函数 进程处理函数包括进程启动函数,进程终止函数,进程控制函数,和其他控制函数。其中进程启动函数包括了eval、system、和fork函数。 1. eval函数 eval函数将字符串作为Perl语句进行执行。如果执行成功,则系统变量$@为空串,否则$@中包含了错误信息。例如,在eval函数中执行一个打印语句,可以得到打印结果。 2. system函数 system函数可以启动一个新的进程来运行指定的程序,并等待程序结束。其参数list中的第一个元素为程序名,其余为参数。系统会将程序的返回值左移八位成为system函数的返回值。例如,通过system函数执行echo命令可以在屏幕上输出指定的字符串。 3. fork函数 fork函数可以用于创建一个新的进程。在fork函数调用后,会返回一个子进程的进程号,父进程中返回子进程的进程号,子进程中返回0。之后,父进程与子进程会分别执行不同的代码。这个函数可以用于实现并发执行的程序。 二、数学函数 数学函数包括了一系列的数学运算功能,如求幂、开方、对数、三角函数等。 三、字符串处理函数 字符串处理函数包括了对字符串的操作,如字符串连接、长度、截取、替换等。 四、标量转换函数 标量转换函数用于将不同类型的数据转换为标量类型。 五、数组和列表函数 数组和列表函数包括了对数组和列表的操作,如元素添加、删除、排序等。 六、关联数组函数 关联数组函数用于对关联数组的操作,与普通数组不同的是,关联数组的索引可以是字符串而非数字,也称为哈希表。 总的来说,这些函数涵盖了Perl语言中常用的各种操作,可以用于完成各种不同的任务。通过对这些函数的学习和掌握,可以更加熟练地使用Perl语言进行编程,提高编程效率和质量。同时,这些函数也为Perl语言的应用提供了更多的可能性,让开发者能够更加灵活地进行程序设计和开发。

data_dir='/public/work/Personal/wuxu/qiantao_17' for file1 in ${data_dir}/*.fasta; do for file2 in ${data_dir}/*.fasta; do if [ "$file1" != "$file2" ]; then touch snp_indel.end.sh && cat snp_indel.end.sh && \ export PATH=/public/work/Personal/pangshuai/software/conda/miniconda3/bin/:${PATH} && \ nucmer --mum -t 8 -g 1000 -p ${file1##*/}.${file2##*/}.ref_based.nucmer $file1 $file2 && \ delta-filter -1 -l 200 ${file1##*/}.${file2##*/}.ref_based.nucmer.delta > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter && \ dnadiff -d ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter -p ${file1##*/}.${file2##*/}.ref_based.nucmer && \ show-coords -rcloT ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.coords && \ show-coords -THrd ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.syri.coords && \ show-snps -ClrTH ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp && \ show-diff ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter > ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.inv && \ perl /public/work/Pipline/Structural_Variation/pipeline/2.1.1/bin/filter_the_MUmmer_SNP_file.pl ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.SNPs ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.Insertions ${file1##*/}.${file2##*/}.ref_based.nucmer.delta.filter.snp.Deletions 10000000 && \ touch snp_indel.end.tmp && \ mv snp_indel.end.tmp snp_indel.end && \ sleep 10 fi done done ,增加一个判断,使/public/work/Personal/wuxu/qiantao_17路径下以.fasta结尾的文件两两一组不分前后只组合一次,然后再执行touch 后面的代码

2023-06-03 上传