0

私は Perl の適性を高めるために多くの演習を行っており、ガイダンスが必要な状況に遭遇しました。

現在、getopt を使用してコマンド ライン引数を取得し、それを function1 にフィードするスクリプトを作成しています。次に Function1 が検索を行い、セットアップしたテーブルに対して SQL クエリを実行し、結果を hash_ref として返します。関数 1 からの出力は、関数 2 に供給される変数に割り当てられます。Function2 は、hash_ref を受け取り、逆参照された結果を出力し、hash_ref がキーを持っているかどうかに応じて、値または -1 または 0 を返します。その数値が出力され、-1 が出力された場合、検索の結果が見つからなかったことを報告します。

getopt を使用してコマンド ライン引数を追加し、各引数の正規表現を介して結果をフィードすることで、スクリプトを変更する必要があります。

私の質問は基本的に...これを行う最善の方法は何ですか? 私は一般的にPERLと正規表現に非常に慣れていませんが、正規表現の構文を理解できると思います。最初の関数に渡す前に正規表現テストを割り当てる必要がありますか? SQLクエリ自体でそれを行う必要があります(それは可能ですか?私がやろうとしていることに関する多くの正規表現/Perl/SQLドキュメントが見つかりません)。

必要に応じてコードを追加できますが、自分で理解できるように一般的なガイダンスのみを希望します。

4

1 に答える 1

1

これには正規表現は必要ありません。

sub getAthletes {

  my($sport_arg, $number_arg) = @_

  $whereclause = " 1=1 ";  # start it with this

  if($sport_arg) {
    $whereclause .= " and sport = '$sport_arg'" ;
  }
  if($number_arg) {
    $whereclause .= " and jerseynum = $number_arg ";
  }
  $query = "SELECT * FROM ATHLETES WHERE $whereclause";

  print STDERR "Your query, friend:  $query\n";

  ... rest of your program here
}

GetOptions("s=s", \$sport_arg,
           "i=s", \$number_arg);

getAthletes($sport_arg, $number_arg);
于 2013-05-16T00:45:32.907 に答える