Perl は C言語の文法を参考にしつつも、Bash シェルスクリプトで使われる sed や awk の置き換えも考慮したグルー言語でもあります。そういった複数の影響のためか、Perl とシェルスクリプトで似たような書き方なのに書き方が違うといった場合があります。 シェルスクリプトもシェルの数に応じた文法がありますが、ここでは Bash を取り上げます。 数値と文字、それぞれの比較演算子 Perl の場合は数値比較が == で、文字比較が eq Bash の場合は数値比較が -eq で、文字比較が = 細かい違いはあるにしろ、数値比較と文字比較が事実上逆の演算子になっています。 Bash では test としても知られる [...] と、後に導入された [[...]] の違いはありますが、今回は古くからお馴染みの [...] を取り上げます。 Perl はシェルスクリプトの文法を参考にして
![Perl とシェルスクリプトで逆になっていると思えるほど違う部分の理由を考える - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b66f5988e0826b97ff959a6f6b42de4f34c23e7a/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UGVybCUyMCVFMyU4MSVBOCVFMyU4MiVCNyVFMyU4MiVBNyVFMyU4MyVBQiVFMyU4MiVCOSVFMyU4MiVBRiVFMyU4MyVBQSVFMyU4MyU5NyVFMyU4MyU4OCVFMyU4MSVBNyVFOSU4MCU4NiVFMyU4MSVBQiVFMyU4MSVBQSVFMyU4MSVBMyVFMyU4MSVBNiVFMyU4MSU4NCVFMyU4MiU4QiVFMyU4MSVBOCVFNiU4MCU5RCVFMyU4MSU4OCVFMyU4MiU4QiVFMyU4MSVCQiVFMyU4MSVBOSVFOSU4MSU5NSVFMyU4MSU4NiVFOSU4MyVBOCVFNSU4OCU4NiVFMyU4MSVBRSVFNyU5MCU4NiVFNyU5NCVCMSVFMyU4MiU5MiVFOCU4MCU4MyVFMyU4MSU4OCVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MDE2NGM3YTczNzg2ZmE1ZjNmODE3MDNhZmIzM2I3YWU%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweHRldHN1amkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTNhZTJkMDMzNGUyZjQxMjlkNGYxYTAwYzM1ZGM0ZmY5%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D8319fb44e3c7b5ee45fd8d177591419d)