![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
&あああ("ファイル名1", "AGT");
&あああ("ファイル名2", "ACA");
&あああ("ファイル名3", "TAT");
&あああ("ファイル名4", "TGA");
sub あああ{
open(FILE, "処理させるファイル") or die "$!";
my ($file, $tag) = @_;
open(NEWFILE, "> $file") or die "$!";
my $x = 0;
my @ti;
while(<FILE>){
if($_ =~ "^>"){
$x ++;
$ti[$x] = $_;
} elsif($_ =~ "^$tag"){
print NEWFILE $ti[$x].$_;
}
}
print "$x\n";
close NEWFILE;
}
このプログラムをサブルーチンではなく
forかなんかで実行させ
自由にファイル数と$tagを設定し
実行できるようにしたいのですが
できますでしょうか><
forをまわす回数を指定しSTDINなんかで指定し
そのforの中でファイル処理に必要な条件や
吐き出すファイルの名前をSTDINで指定するようなものを書きたいです
ちなみにperl初心者です
質問が意味不明かもしれないです><
よろしくおねがいします
No.1ベストアンサー
- 回答日時:
以下を組み合わせたら何かしら出来るかと思います。
# STDINで指定
chomp( my $stdin = <STDIN> );
# forで$stdin回まわす
my $name = "hoge";
for (1..$stdin) { print $name . $_ , "\n"; }
# Tagを回す
my @tags = qw(AGT ACA TAT TGA);
foreach my $tag (@tags) { print "$tag\n"; }
No.2
- 回答日時:
コマンドラインのオプションを取り扱いたいんだと想像します。
次のスクリプトでは次のオプションが使えます。
-t LIST or --tag=LIST コンマ区切りのタグ文字列を指定します。複数回指定できます。
-o PATH or --ouput=PATH 出力ファイルのプリフィクスです。デフォルトはスクリプトの名前+'-output-'。
-n or --num 出力ファイル名の連番を数字にします。デフォルトはアルファベットです。
例:
$ perl arg.pl --tag=a,b,c
arg-output-a
a
arg-output-b
b
arg-output-c
c
$ perl arg.pl --tag=a --tag=b --tag=c --output=path-
path-a
a
path-b
b
path-c
c
$ perl arg.pl -t a,b,c -o path- --num
path-1
a
path-2
b
path-3
c
arg.pl:
#!/usr/bin/perl
use strict;
use warnings;
use v5.10;
use File::Basename;
use Getopt::Long;
my @tag;
my $output = basename($0, '.pl') . '-output-';
my $num;
GetOptions(
'tag=s' => \@tag
, 'output=s' => \$output
, 'num' => \$num
);
@tag = split(/,/, join(',', @tag));
my $suffix = 'a';
if ($num) { $suffix = '1'; }
foreach (@tag) { &aaa($output.$suffix++, $_); }
sub aaa { # 単に引数をプリントするだけ
my ($output, $tag) = @_;
say $output; say $tag;
}
参考URL:http://perldoc.perl.org/Getopt/Long.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlで時間の計算
-
perlをバージョンアップしたら...
-
積分計算の答えが合いません・・・
-
【超初心者】異なるディレクト...
-
アルファベットに付いて質問し...
-
画像が表示でnull; this.src
-
Perlで特定文字列から特定文字...
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
perlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
Perlで特定文字列から特定文字...
-
perlをバージョンアップしたら...
-
Wallpaper Engineでおすすめの...
-
arduino の割り込み処理について
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
Perlで時間の計算
-
このファイルを開く方法で困っ...
-
TeraPadエディターの操作方法に...
-
cgiでサーバーにファイルを追加...
-
フローチャート 九九
-
LinuxにおいてのPerlのプログラ...
-
perl 初等プログラミングについて
-
Perlのエラーについてご教授く...
-
こんにちは ブラケッツでプログ...
-
bashスクリプト
-
perlプログラミング 空白行削除
おすすめ情報