Perlに対する誤解を解きたいPerlのリファレンスの機能は、C言語のポインタの機能と似ているPerlには、リファレンスと呼ばれる値の参照を取得できる機能がありますが、これはC言語のポインタの機能と同じものです。PerlのリファレンスPerlの値のリファレンスは「\」で取得できます。\$num;C言語のポインタC言語では、値のアドレスを「&」で取得し、ポインタ型の変数に代入できます。記号が「\」であるか「&」であるかを除いては、PerlとC言語は同じことをしています。Perlの場合はリファレンスを取得すると書いていますが、実際にはアドレスの値を取得しているだけです。C言語ではアドレス演算ができますが、Perlのリファレンスは、C言語における、アドレス演算ができないアドレス値だと考えてください。C言語の場合は、ポインタ変数に代入していますが、Perlの場合は、型が動的なので、変数にそのまま代入できます。C言語で覚えたポインタの概念がPerlでもそのまま使える大学のソフトウェアの授業で、頑張って覚えたC言語のポインタの概念を、Perlでもそのまま活用することができます。Perlからプログラミングを始めた方は、C言語のポインタに該当する機能を、Perlを使って、理解することができます。PerlはC言語と同じく、値と参照を明確に区別する言語です。「値と参照の区別は隠してしまったほうがユーザーは使いやすい」という意見も一方にありますが、値と参照を区別することは、ソフトウェアのデータに関する非常に基礎的な考え方なので、区別ができるということは、メリットでもあるのです。C言語より低レベルなアセンブラや機械語といった分野では、値と参照(アドレス)をしっかり区別できることが、エンジニアとしての基礎知識として求められるからです。この違いを言語の個性として、とらえてみるのはいかがでしょうか?PerlとC言語の他の類似点この記事では、PerlのリファレンスがC言語のポインタと似ているということを書きましたが、Perlのif文、for文、while文、インクリメント/デクリメント、演算子の優先順位、スコープ、参照概念も、C言語の文法と似ています。