Perl 面接の質問と回答トップ 69 (2025)
ここでは、夢の仕事に就くための、経験豊富な新人候補者向けの Perl Scripting 面接の質問と回答を紹介します。
新人向けの Perl 面接の質問
1) chomp関数が動作する変数の違いは?
- スカラー:$記号で表します。 変数には数値または文字列を指定できます。
- アレイ: @ 記号プレフィックスで示されます。配列は数字でインデックス付けされます。
これらのタイプの変数の名前空間は異なります。 例: @add、$add。 スカラー変数は名前または名前空間の XNUMX つのテーブルにあり、一度に XNUMX つの特定の情報を保持できます。配列変数は名前または名前空間の別のテーブルにあります。 スカラー変数は数値または文字列のいずれかになります
👉 無料 PDF ダウンロード: Perl インタビューの質問と回答
2) 定義されているスコープ内でのみ使用できる関数を作成しますか?
$pvt = Calculation(5,5); print("Result = $pvt\n"); sub Calculation{ my ($fstVar, $secndVar) = @_; my $square = sub{ return($_[0] ** 2); }; return(&$square($fstVar) + &$square($secndVar)); };
出力: 結果= 50
3) コードの再利用性を提供する Perl の機能はどれですか? その機能の例を教えてください。
Perl の継承機能により、コードの再利用が可能になります。 継承では、子クラスは親クラスのメソッドとプロパティを使用できます。
Package Parent; Sub foo { print("Inside A::foo\n"); } package Child; @ISA = (Parent); package main; Child->foo(); Child->bar();
4) Perl では、エラーを軽減または回避するために、いくつかのオプションを使用して警告を表示できます。 そのオプションとは何ですか?
- -w コマンドライン オプション: コードに関する警告メッセージがあればリストを表示します。
- 厳密なプラグマ: my() 関数を使用して変数を使用する前に、ユーザーはすべての変数を宣言する必要があります。
- 組み込みデバッガーの使用: これにより、ユーザーはプログラム全体を XNUMX 行ずつスクロールできます。
5) 数字のリストを処理するプログラムを作成します。
次のプログラムは、実行時にユーザーに数値の入力を求め、数値の平均が出力として表示されます。
$sum = 0; $count = 0; print "Enter number: "; $num = <>; chomp($num); while ($num >= 0) { $count++; $sum += $num; print "Enter another number: "; $num = <>; chomp($num); } print "$count numbers were entered\n"; if ($count > 0) { print "The average is ",$sum/$count,"\n"; } exit(0);
6) Perl にはオブジェクトがありますか? 「はい」の場合、オブジェクトの使用は強制されますか? いいえの場合、なぜですか?
はい、 パール にはオブジェクトがありますが、オブジェクトの使用を強制するものではありません。 オブジェクト指向モジュールの多くは、オブジェクトを理解していなくても使用できます。 しかし、プログラムが大きすぎる場合は、プログラマがそれをオブジェクト指向にすることが効率的です。
7) バイナリ拡張を動的にロードできますか?
はい、バイナリ拡張を動的にロードできますが、お使いのシステムはそれをサポートしています。 サポートしていない場合は、拡張機能を静的にコンパイルできます。
8) $firststring と $secondstring を連結するプログラムを作成します。これらの文字列の結果は単一のスペースで区切る必要があります。
構文:
$result = $firststring . " ".$secondstring;
プログラム:
#!/usr/bin/perl $firststring = "abcd"; $secondstring = "efgh"; $combine = "$firststring $secondstring"; print "$Combine\n";
出力:
abcd efgh
9) ファイル内のすべての TAB 文字をカンマに置き換えるにはどうすればよいですか?
perl -pi.bak -e 's/\t/,/g' myfile.txt
10) Perl では頻繁に使用される引数がいくつかあります。 その議論は何であり、何を意味するのでしょうか?
-w (引数は警告を示します)
-d (デバッグに使用)
-c (コンパイルのみで実行は行われません)
-e (実行)
次のようにこれらを組み合わせて使用することもできます。
-wd
11) Perl の主要なデータ構造は何種類ありますか?また、それらは何を意味しますか?
スカラー: 一度に XNUMX つの特定の情報 (文字列、整数、または参照) を保持できます。 ドル $ 記号で始まり、その後に Perl 識別子が続きます。Perl 識別子には英数字とアンダースコアを含めることができます。 数字で始めることはできません。 配列は単なるスカラー変数のリストです。
配列: 配列は @ 記号で始まります。 配列の例:
my @arrayvar = ("string a", "string b "string c");
連想配列: これはハッシュとも呼ばれることが多く、Perl ではスカラーと配列に次ぐ XNUMX 番目の主要なデータ型です。 ハッシュは、プログラマが他の言語で使用する一般的なデータ構造、つまりハッシュ テーブルと非常によく似て機能するため、そのように名付けられました。 ただし、Perl のハッシュは実際には直接言語でサポートされるデータ型です。
12) Perl のどの関数でモジュール ファイルまたはモジュールをインクルードできますか?また、それらの違いは何ですか?
"使用"
- このメソッドはモジュールのみに使用されます (.pm タイプのファイルをインクルードするためのみ)
- 含まれるオブジェクトはコンパイル時に検証されます。
- ファイル拡張子を指定する必要はありません。
- コンパイル時にモジュールをロードします。
"必要とする"
- このメソッドはライブラリとモジュールの両方に使用されます。
- 含まれるオブジェクトは実行時に検証されます。
- ファイル拡張子を指定する必要があります。
- 実行時にロードされます。
「Module.pm」というモジュール ファイルがあるとします。
モジュールを使用します。
または
「Module.pm」が必要です。
(同じことをします)
13) Perl で「私の」変数スコープを定義するにはどうすればよいですか?また、それは「ローカル」変数スコープとどのように違うのですか?
$test = 2.3456; { my $test = 3; print "In block, $test = $test "; print "In block, $:: test = $:: test "; } print "Outside the block, $test = $test "; print "Outside the block, $:: test = $::test ";
出力:
In block, $test = 3 In block, $::test = 2.3456 Outside the block, $test = 2.3456 Outside the block, $::test = 2.3456
「my」変数の可視性の範囲はブロック内のみですが、XNUMX つの変数をローカルに宣言すると、ブロックの外側からもその変数にアクセスできます。 「my」は新しい変数を作成し、「local」は変数の値を一時的に修正します。
14) Perl モジュールによるどのガイドラインに従う必要がありますか?
以下はガイドラインであり、必須ではありません
パッケージ名は常に大文字で始める必要があります。
ファイル名全体には拡張子「.pm」が必要です。
オブジェクト指向技術が使用されていない場合、パッケージは Exporter クラスから派生する必要があります。
また、オブジェクト指向技術が使用されていない場合、モジュールは @EXPORT および @EXPOR_OK 配列を使用してその関数と変数をメインの名前空間にエクスポートする必要があります (モジュールのロードには use ディレクティブが使用されます)。
経験者向けの Perl 面接の質問と回答
以下は、経験豊富な候補者向けの Perl Scripting 面接の質問と回答です。
15) Perl ではインタプリタはどのように使用されますか?
すべての Perl プログラムは、実行するために Perl インタープリタを通過する必要があります。 多くの Perl プログラムの最初の行は次のようなものです。
#!/usr/bin/perl
インタプリタはプログラムを内部で解析ツリーにコンパイルします。 シャープ記号の後の単語、スペース、またはマークは、プログラム インタプリタによって無視されます。 解析木に変換後、インタプリタは直ちに実行します。 Perl はインタプリタ型言語として一般に知られていますが、厳密にはそうではありません。 インタプリタは実際にプログラムを実行する前にバイトコードに変換するため、インタプリタ/コンパイラと呼ばれることもあります。 ただし、コンパイルされた形式はファイルとして保存されません。
16) 「親クラスで定義されたメソッドは、常に基本クラスで定義されたメソッドをオーバーライドします。」 この発言は何を意味しますか?
上記のステートメントは、Perl におけるポリモーフィズムの概念です。 ステートメントを明確にするために、例を見てみましょう。
[perl] package X; sub foo { print("Inside X::foo\n"); } package Z; @ISA = (X); sub foo { print("Inside Z::foo\n"); } package main; Z->foo(); [/perl]
このプログラムは以下を表示します。
Z::foo 内
– 上記の例では、クラス Z クラスで定義された foo() メソッドがクラス X からの継承をオーバーライドします。ポリモーフィズムは主に、クラス全体を再プログラミングすることなく、既存のクラスの機能を追加または拡張するために使用されます。
17) プログラミングのある状況では、Perl が適しているとどのように判断できますか?
より高速な実行が必要な場合は、Perl がその要件を提供します。 Web ベースのアプリケーションを開発する場合、プログラミングには大きな柔軟性があります。 Perl は無料なので、ライセンスを購入する必要はありません。 CPAN (総合 Perl) を使用できます。 Archive Network) は、世界最大の無料コードのリポジトリの 1 つです。
18) Perl で XNUMX つの配列を加算する構文を記述しますか?
@arrayvar = (@array1,@array2);
同じことを達成するために、プッシュ関数を使用することもできます。
19) Perl で使用される演算子は何種類ありますか?
算術演算子
+, - ,*
代入演算子:
+= , -+, *=
インクリメント/デクリメント演算子:
++, --
文字列連結:
'.'
オペレータ
比較演算子:
==, !=, >, < , >=
論理演算子:
&&, ||, !
20) 配列を空にしたい場合は、どうすればよいでしょうか?
配列の長さを任意の –ve 数値 (通常は -1) に設定し、null リストを割り当てることで配列を空にできます。
use strict; use warnings; my @checkarray; if (@checkarray) { print "Array is not empty"; } else { print "Array is empty"; }
21) コマンド ライン引数はどこに保存されますか?また、Perl でコマンド ライン引数を読み取りたい場合は、どうすればよいですか?
Perl のコマンド ライン引数は、配列 @ARGV に保存されます。
$ARGV[0] (最初の引数)
$ARGV[1] (XNUMX 番目の引数) など。
$#ARGV は @ARGV 配列の最後の要素の添え字であるため、コマンド ラインの引数の数は $#ARGV + 1 です。
22) 配列に @arraycontent=('ab', 'cd', 'ef', 'gh') が含まれているとします。 指定された配列のすべての内容を出力するにはどうすればよいですか?
@arraycontent=('ab', 'cd', 'ef', 'gh') foreach (@arraycontent) { print "$_\n"; }
23) Perl では、-w、-t、および strict はどのように使用されますか?
–w を使用すると、スクリプト内の解釈エラーの可能性について警告が表示されます。
Strict は、変数の定義と使用法を強制的にチェックするように Perl に指示します。 これは、use strict コマンドを使用して呼び出すことができます。 スクリプト内に安全でないコマンドや曖昧なコマンドがある場合、このプラグマは警告を発するだけでなく、スクリプトの実行を停止します。
–t を使用すると、汚染チェックがオンになります。 サブシェルの実行やシステムコールで外部変数を使用できない場合、Perl は変数の起源をチェックするように強制されます。
24) www.perlinterview.com/answers.php Web サイトからコンテンツをダウンロードするプログラムを Perl で作成します。
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; my $siteurl = 'www.perlinterview.com/answers.php'; my $savefile = 'content.kml'; getstore($siteurl, $savefile);
25) リストと用語ではどちらが優先されますか? 説明する?
Perl では、用語の優先順位が最も高くなります。用語には、変数、引用符、括弧内の式などが含まれます。リスト演算子は、用語と同じレベルの優先順位を持ちます。具体的には、これらの演算子は左の単語の優先順位が非常に高くなります。
26) Perl が処理できるデータ型を列挙しますか?
スカラー ($): 単一の値を格納します。
配列 (@): スカラー値のリストを保存します。
ハッシュ (%): 数値インデックスの代わりにキー値をインデックスとして使用する連想配列を格納します。
27) grep 関数を使用する構文を記述しますか?
grep BLOCK LIST grep (EXPR, LIST)
28) -n および -p オプションは何に使用されますか?
-n および -p オプションは、スクリプトを内部にラップするために使用されます。 ループ。 -n オプションを使用すると、Perl はループ内でスクリプトを実行します。 -p オプションも -n ループと同じループを使用しますが、それに加えて continue を使用します。 -n オプションと -p オプションの両方を一緒に使用すると、-p オプションが優先されます。
29) -i および 0s オプションの使用法は何ですか?
-i オプションは、ファイルをインプレースで変更するために使用されます。 これは、Perl が入力ファイルの名前を自動的に変更し、出力ファイルは元の名前を使用して開かれることを意味します。 -i オプションを単独で使用した場合、ファイルのバックアップは作成されません。 代わりに、-i.bak を使用すると、ファイルのバックアップが作成されます。
30) 記号表を明確に説明するプログラムを作成してください。
Perl では、シンボル テーブルは、名前空間で定義されているすべての名前のリストを含むハッシュであり、すべての関数と変数が含まれています。 例えば:
sub Symbols { my($hashRef) = shift; my(%sym); my(@sym); %sym = %{$hashRef}; @sym = sort(keys(%sym)); foreach (@sym) { printf("%-10.10s| %s\n", $_, $sym{$_}); } } Symbols(\%Foo::); package Foo; $bar = 2; sub baz { $bar++; }
31) Perl 警告はどのように使用できますか?また、警告を使用する重要性は何ですか?
Perl 警告は、作成されたコードの品質を Perl がチェックする警告です。 必須の警告は、字句解析段階の問題を強調します。 オプションの警告は、異常の可能性があるケースを強調表示します。
use warnings; # it is same as importing "all" no warnings; # it is same as unimporting "all" use warnings::register; if (warnings::enabled()) { warnings::warn("any warning"); } if (warnings::enabled("void")) { warnings::warn("void", "any warning"); }
32) 本体に初期化、条件チェック、およびインクリメント式を含むステートメントはどれですか? そのステートメントを使用するための構文を作成します。
for ($count = 10; $count >= 1; $count--) { print "$count "; }
33) 文字列から文字を置換し、置換回数を節約するにはどうすればよいですか?
#!usr/bin/perl use strict; use warnings; my $string="APerlAReplAFunction"; my $counter = ($string =~ tr/A//); print "There are $counter As in the given string\n"; print $string;
34) @array=("perl","php","perl","asp") から重複データを削除します。
sub uniqueentr { return keys %{{ map { $_ => 1 } @_ }}; } @array = ("perl","php","perl","asp"); print join(" ", @array), "\n"; print join(" ", uniqueentr(@array)), "\n";
35) 情報をハッシュに入れるにはどうすればよいですか?
ハッシュ値が参照された場合、ハッシュ値は作成されません。 値が割り当てられた場合にのみ作成されます。 ハッシュの内容にはリテラル表現はありません。 ハッシュを一度に埋める場合は、ハッシュの巻き戻しを行う必要があります。 ハッシュの巻き戻しは、リストを使用してハッシュ内のキーと値のペアを作成でき、そこから変換することもできることを意味します。 この変換プロセスでは、偶数番号の項目が右側に配置され、値と呼ばれます。 左側に配置されたアイテムは奇数番号であり、キーとして保存されます。 ハッシュには内部順序が定義されていないため、ユーザーは特定の順序に依存すべきではありません。
ハッシュの作成例:
%birthdate = ( Ram => "01-01-1985", Vinod => "22-12-1983", Sahil => "13-03-1989", Sony => "11-09-1991");
36) Perl エイリアスは参照よりも高速であると考えられるのはなぜですか?
Perl では、エイリアスは逆参照を必要としないため、参照よりも高速であると考えられます。
37) Perl ではメモリをどのように管理できますか?
Perl で変数が使用されるたびに、ある程度のメモリ空間が占有されます。 コンピュータのメモリには限界があるため、ユーザーはプログラムが使用するメモリに注意する必要があります。 例えば:
use strict; open(IN,"in"); my @lines = <IN> close(IN); open(OUT,">out"); foreach (@lines) { print OUT m/([^\s]+)/,"\n"; } close(OUT);
上記のプログラムを実行すると、ファイルを読み取った後、各行の最初の単語が別のファイルに出力されます。 ファイルが大きすぎると、システムのメモリが不足してしまいます。 これを回避するには、ファイルをセクションに分割します。
38) 匿名サブルーチンはどのように作成できますか?
sub BLOCK sub PROTO BLOCK sub ATTRS BLOCK sub PROTO ATTRS BLOCK
39) サブルーチンのコンテキストとはどういう意味ですか?
これは、期待される戻り値のタイプとして定義されます。 異なる値を返す単一の関数を使用できます。
40) Perl での接頭辞逆参照子をリストします。
$-スカラー変数
%-ハッシュ変数
@配列
&-サブルーチン
タイプ globs-*myvar は @myvar、%myvar を表します。
41) CPAN モジュールで、使用するインスタンスに名前を付けます。
CPAN では、CGI と DBI は非常に一般的なパッケージです
42) Perl に対する c の利点は何ですか?
C には PERL よりも多くの開発ツールがあります。 PERL は C プログラムよりも実行が遅くなります。 Perl はインタプリタ型言語のように見えますが、コードはオンザフライでコンパイルされます。 自分の Perl コードを他の人に使用されたくない場合は、C とは異なり、何らかの方法でコードを隠す必要があります。追加のツールがなければ、Perl プログラムの実行可能ファイルを作成することは不可能です。
43) 「Perl の正規表現は可能な限り長い文字列に一致します。」 この試合の名前は何ですか?
Perl の正規表現は通常、可能な限り長い文字列に一致するため、これは「貪欲一致」と呼ばれます。
45) サブルーチンを呼び出してサブルーチンを識別するにはどうすればよいですか?
「&myvariable」はサブルーチンを呼び出すために使用され、「&」はサブルーチンを識別するために使用されます。
46) 「->」記号は何に使用されますか?
Perl では、「->」記号は中置逆参照演算子です。右側が配列の添え字、ハッシュ キー、またはサブルーチンの場合、左側は参照である必要があります。
@array = qw/ abcde/; # array print "n",$array->[0]; # it is wrong print "n",$array[0]; #it is correct , @array is an array
47) 「chomp」はどこで必要ですか?また、それは何を意味しますか?
「chomp」を使用すると改行文字を削除できます。 さまざまなシナリオで使用できます。例:
excuteScript.pl FstArgu. $argu = $ARGV[0]; chomp $argu; --> to get rid of the carrige return.
48) 「$_」記号は何を意味しますか?
「$_」は Perl のデフォルト変数であり、$_ は「デフォルトの入力およびパターン マッチング スペース」として知られています。
49) PERL でデータベースに接続するために使用されるインターフェイスは何ですか? Perl でデータベースに接続するにはどうすればよいですか?
Perl の DBI モジュールを使用してデータベースに接続できます。
use DBI; my $dbh = DBI->connect('dbi:Oracle:orcl', 'username', 'password',)
50) Perl で使用される演算子を列挙してください。
OperaPerl で使用される Tor は次のとおりです。
- 文字列の連結「.」
- 比較 Operators ==、!=、>、<、>=
- 論理的 Operaトルズ&&、ll、!
- 譲渡 Operaトルズ + = 、- + 、*=
- インクリメントとデクリメント Operaトール++、-
- 算術 Operaトルズ +、 – 、*
51) コードの再利用性を提供する PERL の機能を説明してください。
コードの再利用性を提供するために、PERL 継承機能が使用されます。 継承では、子クラスは親クラスのメソッドとプロパティを使用できます。
52) Perl における die と exit の違いについて言及しますか?
Die はプログラムを終了する前に標準エラーにメッセージを出力しますが、Exit は単にプログラムを終了します。
53) Perl では、grep 関数は何に使用されますか?
リストをフィルタリングして、特定の基準に一致する要素のみを返すには、Perl grep 関数が使用されます。
54) Perl の grep 関数で使用される構文は何ですか?
Perlで使用される構文は次のとおりです。
- grep ブロックリスト
- grep (EXPR, LIST)
- ブロック: 中括弧で区切られた XNUMX つ以上のステートメントが含まれており、最後のステートメントはブロック内でブロックが true または false と評価されるかどうかを決定します。
- 経験値: $ をサポートする任意の式、特に正規表現を表します。 リストの各要素に対して式が適用され、評価の結果が true の場合、現在の要素が返されたリストに追加されます。
- リスト: 要素のリストまたは配列です
55) Perl のスカラー データとスカラー変数とは何ですか?
Perlにおけるスカラーとは、数値や文字列のような単一のエンティティを意味します。 Java int、float、double、string の概念は Perl のスカラーに等しく、数値と文字列は交換可能です。一方、スカラー変数はスカラー データを格納するために使用されます。$ 記号を使用し、その後に 1 つ以上の英数字またはアンダースコアが続きます。大文字と小文字は区別されます。
56) Perl で -> 記号は何を示しますか?
Perl では、矢印 – > 記号は、クラスの特定のオブジェクトを作成またはアクセスするために使用されます。
57) Perl で文字列を表現できる方法は何通りあるか教えてください。
Perl ではさまざまな方法で文字列を表現できます
たとえば、「こちらはguru99です。」
- qq/これは guru99 のような二重引用符で囲まれた文字列です/
- qq^これは guru99 のような二重引用符で囲まれた文字列です^
- q/こちらはguru99/です
- Q&こちらはguru99&です
- q(guru99です)
58) USE ステートメントと REQUIREMENT ステートメントについて説明しますか?
- REQUIRE ステートメント: オブジェクトと関数に直接アクセスできるように、グローバル スコープを持つ関数をインポートするために使用されます。
例: モジュールが必要、
Var=モジュール::メソッド(); //モジュール参照で呼び出されるメソッド
- USE ステートメントは解析中に解釈されて実行され、実行時には require ステートメントが実行されます。
例: モジュールを使用する
変数=メソッド(); //メソッドを直接呼び出すことも可能
59) Chop & Chomp 機能が何をするのか説明してください。
- チョップ機能 expr、リストの各要素から最後の文字を削除します。
- むしゃむしゃ機能 $/ の値と一致する場合、expr またはリストの各要素から最後の文字を削除します。 一致する場合にのみ文字を削除するため、チョップよりも優れていると考えられます。
60) CPAN とは何ですか?
CPAN は包括的な Perl を意味します Archive Network、Perl ソフトウェアとドキュメントの大規模なコレクション。
61) Perl のポリモーフィズムとは何ですか?
Perl では、ポリモーフィズムとは、基本クラスで定義されたメソッドが常に親クラスで定義されたメソッドをオーバーライドすることを意味します。
62) サブルーチンまたはブロック内でプライベート値を取得する XNUMX つの方法について言及してください。
サブルーチンまたはブロック内でプライベート値を取得するには XNUMX つの方法があります
- コミュニティ Operaトール: この演算子はグローバル変数にのみ作用します。プライベート変数の値は コミュニティ Operaタ そして、ブロックの終わりでそれらを復元する準備をします。
- My Operaトール: 新しい変数を定義または作成するには、この演算子を使用できます。 My Operaタ は常に、それが定義されているブロックに対してプライベートとして宣言されます。
63) STDIN、STDOUT、STDERR とは何ですか?
- STDIN: STDIN ファイル ハンドルは、キーボードからの読み取りに使用されます。
- STDOUT: 画面または別のプログラムに書き込むために使用されます。
- STDERR: 画面への書き込みにも使用されます。 STDERR は、Perl で使用される標準エラー ストリームです。
64) PERL におけるクロージャとは何ですか?
クロージャは、それが定義されている環境をキャプチャするために使用されるコードのブロックです。 特に、ブロックが外部空間で構成され、使用されるあらゆる字句変数をキャプチャします。
65) Perl ワンライナーとは何ですか?
XNUMX つのライナーは XNUMX つのコマンド ライン プログラムであり、コマンド ラインからすぐに実行できます。
たとえば、
# run program under the debugger perl-d my_file
66) 左辺値とは何ですか?
左辺値は、任意の式の結果を格納するために使用できるスカラー値です。 通常、式の左側に表示され、メモリ内のデータ空間を表します。
67) 文字列に何文字あるかを識別するために使用される関数は何ですか?
文字列に何文字あるかを知るには、 長さ () 関数が使用されます。
68) プレフィックスデリファレンスとは何かを説明し、それらを列挙しますか?
変数を逆参照するときに特定の接頭辞を使用することを、接頭辞逆参照と呼びます。
- $- スカラー変数
- %-ハッシュ変数
- @-配列
- &-サブルーチン
- タイプ globs-*myvar は @myvar、%myvar を表します
69) 戻り値の機能を説明してください。
戻り値関数は、CLASSNAME に祝福されたオブジェクトへの参照を返します。
Perl 認定クイズ
これらの Perl MCQ の質問は、自己評価と Perl 認定試験の準備に役立ちます。 Perl の知識をテストするための MCQ を含むこの無料の Perl クイズをオンラインで受けてください。
これらの面接の質問は、あなたのビバ(口頭)にも役立ちます。