問題タブ [perl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - シェル/Perl スクリプトでパスワードを保持するためのベスト プラクティスは?
私は最近、何人かの同僚を助けるために Perl とシェル スクリプトのスキルを磨かなければなりませんでした。問題の同僚は、大規模な Oracle データベース バックエンドを使用して内部アプリケーションからいくつかのレポートを提供する任務を負っていますが、これを行うスキルがありません。私にそんなスキルがあるのかと疑問に思う人もいるかもしれませんが(笑)、そう思っている人も多いようです。
だから私の質問に-データベースからレポートを抽出するために、私のスクリプトは明らかに接続してクエリを実行する必要があります。これまでのところ、データベースのユーザー名とパスワードを保存する場所の適切な解決策を思い付くことができなかったため、現在はスクリプトにプレーンテキストとして保存されています。
おそらくCPANモジュールとして、他の誰かがすでに書いているこれに対する良い解決策はありますか? または、ファイルシステムの別の場所に隠されている完全に別のファイルにユーザー/パスワードの組み合わせを保持するなど、他に行うべきことがありますか? それとも、システム全体の grep を使用してスクリプトから引き出されるのを避けるために、単純に暗号化したままにしておく必要がありますか?
編集: Oracle データベースは HP-UX サーバー上にあります。
アプリケーション サーバー (シェル スクリプトを実行) は Solaris です。
スクリプトを自分だけが所有するように設定することはできません。複数のサポート担当者がアクセスできるサービス アカウントがスクリプトを所有する必要があります。
スクリプトは、cron ジョブとして実行することを目的としています。
私は公開鍵認証を使いたいと思っていますが、Oracleでそれを機能させる方法を知りません-そのような方法があれば-教えてください!
perl - perldoc perlxxx オプションとは何ですか?
perldoc perl を使用すると、perlre、perlvar などのリストが表示されるようです。
ここは、概要、チュートリアル、またはリファレンス マニュアルのセクションとして利用できるもののリストを見つけるのに最適な場所ですか? 別のより良いリストはありますか?
c# - 企業がアプリケーション言語として C++、C#、または Java を使用している場合、なぜ Perl、Python、Ruby を学ぶのでしょうか?
C++、C#、Java の開発者が動的言語を学びたいと思うのはなぜでしょうか?
会社が主要な開発言語を C++/C#/Java から動的言語に切り替えないと仮定すると、動的言語にはどのような用途があるのでしょうか?
あなたが数年間使ってきた静的言語よりも、わずか数日の学習で、動的言語の方がより速く、またはより良く実行できるヘルパータスクは何ですか?
アップデート
最初のいくつかの回答を見て、2 つの問題があることは明らかです。私の主な関心事は、雇用主にとって経費として正当化できるものです。つまり、雇用主が動的言語の学習に資金を提供する正当な理由を探しています。従業員がより広い視野を持っていることは明らかですが、雇用主は通常、何らかの「本当の」利益を求めています。
perl - perldocを使用して%ENV変数を検索するにはどうすればよいですか?
perldoc perlvarを読んだところ、%ENVのヘルプは約1,000行であることがわかりました。コマンドラインから直接それを見つける方法はありますか?
私のWindowsマシンで、私は次のことを試しました
%ENV変数に関する情報を実際に返すものはありません。
何千もの行を目で追う必要がない場合、perldocを使用して%ENVについて調べるにはどうすればよいですか?
提案された「perldocperlvar」を試し、/%ENVと入力しましたが、何も起こりません。
%ENVについて質問しましたが、これは一般的な用語にも当てはまります。したがって、この1つの例で%ENVがperlvarにあることを知っていても、次回、どのセクションかわからない場合は役に立ちません。
perldocにすべてをダンプさせる方法はありますか(ugh)、出力をgrepできますか?
perl - 実行中のPerlスクリプトへのフルパスを取得するにはどうすればよいですか?
Perlスクリプトがあり、実行中にスクリプトのフルパスとファイル名を決定する必要があります。スクリプトの呼び出し方法によって$0
異なり、場合によってはとが含まれるfullpath+filename
こともありますfilename
。作業ディレクトリも異なる可能性があるためfullpath+filename
、スクリプトを確実に取得する方法を考えることはできません。
誰かが解決策を手に入れましたか?
perl - perl での逆引き DNS ルックアップ
逆引き DNS ルックアップを実行するにはどうすればよいですか。つまり、Perl で IP アドレスを DNS ホスト名に解決するにはどうすればよいですか?
perl - CGI.pmは通常どこに一時ファイルを作成しますか?
1台のマシンを除くすべてのWindowsサーバーで、次のコードを実行して一時ファイルフォルダーを割り当てると、次のようになります。
変数$tmpfile
には値が割り当てられ、'.\CGItemp1'
これが私が望むものです。しかし、私のサーバーの1つでは、が正しく設定されていませんC:\temp\CGItemp1
。
すべてのサーバーは、Windows 2003 Standard Edition、IIS6、およびActivePerl 5.8.8.822を実行しています(Perlの新しいバージョンへのアップグレードはオプションではありません)。コマンドラインから、またはIISでCGIスクリプト(scriptmap .pl
= c:\perl\bin\perl.exe "%s" %s
)としてスクリプトを実行した場合、結果は常に同じです。
.\CGItemp1
このPerlインストールを修正して、デフォルトで''を返すように強制するにはどうすればよいですか?
動作中のサーバーの1つからこのマシンにPerlフォルダー全体をコピーしたこともありますが、喜びはありません。
TMP
' 'と' TEMP
'環境変数をチェックしました。また$ENV{TMP}
、$ENV{TEMP}
それらは同一です。
コマンドラインから、ユーザープロファイルディレクトリを指します。次に例を示します。
C:\DOCUME~1\[USERNAME]\LOCALS~1\Temp\1
IISでCGIスクリプトとして実行すると、どちらも次のことを示します。
c:\windows\temp
レジストリキーHKEY_USERS/.DEFAULT/Environment
では、両方のサーバーに次のものがあります。
%USERPROFILE%\Local Settings\Temp
のActiveState実装はCGITempFile()
、一時フォルダを生成する方法を決定するために、明らかに代替メカニズムを使用しています。
本当の問題は、CGI.pm
モジュールとアタッチメントの処理にあります。ファイルがサイトにアップロードされるときはいつでも、CGI.pm
それを一時的な場所に保存する必要があります。これを行うには、一時フォルダを割り当てるためにCGITempFile()
内で呼び出されます。CGI.pm
残念ながら使用できませんFile::Temp
。とにかくありがとう。
それはたくさんの助けになりました。私は以前にソースをざっとスキャンしましCGI.pm
たが、あなたの提案により、私は戻って、基礎となるアルゴリズムを理解するためにそれをより慎重に見るようになりました。私は物事を動かしましたが、奇妙なことに、元々c:\temp
サーバー上にフォルダーがありませんでした。
一時的な修正を取得するために、c:\temp
フォルダーを作成し、Webサイトの匿名ユーザーアカウントに関連するアクセス許可を設定しました。しかし、これは共有ボックスであるため、一時ファイルが削除されていても、そのままにしておくことはできませんでした。簡単に言うと、フォルダの名前をc:\temp
別の名前に変更すると、魔法のように正しい' .\
'フォルダパスが返されていました。また、顧客がサイトでFrontPage拡張機能を有効にしていることに気付きました。これにより、Webサイトフォルダーの匿名ユーザーアカウントの書き込みアクセスが削除されるため、このアクセス許可を再適用する必要がありました。そのフォルダが存在しなかったのに、なぜこの問題の最初CGITempFile()
に戻ってきたのか、そしてなぜそれが魔法のように再び機能し始めたのかについて、私はまだ途方に暮れています。c:\temp
perl - Windows で Perl ithreads を同時に実行できますか?
Perl スレッド (スレッドを使用) を使用してセットアップしようとしている Perl スクリプトがあります。簡単なテストを実行するとすべてが機能しますが、実際のスクリプト (複数の SQL Plus セッションを実行するスレッドを含む) を実行すると、各 SQL Plus セッションが順番に実行されます (つまり、スレッド 1 の sqlplus がステップ 1 から 5 を実行し、次にスレッド 2 の sqlplus が実行されます)。手順 6 ~ 11 などを実行します)。
スレッドが並行処理を行うことは理解できたと思いましたが、何かがおかしいです。アイデアはありますか、それとも他の Perl マジックを行う必要がありますか?
perl - Slackware12.1でgit-svnを動作させる
明らかにいくつかのPerl拡張機能です。Perlのバージョンは5.8.8です。
Error.pmを見つけましたが、今はCore.pmを探しています。
私たちがそれに取り組んでいる間、皆さんはどのようにしてそれらのモジュールを検索しますか。Googleを試しましたが、あまり役に立ちませんでした。ありがとう。
そして最後に、すべてを構築した後、実行します。
私に与える:
Slackwareの「ginstall」には実際にはそのオプションがないようです。これを回避する方法を見るために、私は今少しグーグルに行くと思います。
regex - Perlで正規表現一致の場所を見つけるにはどうすればよいですか?
文字列と正規表現を受け取る関数を作成する必要があります。一致があるかどうかを確認し、一致の開始位置と終了位置を返す必要があります。(正規表現は によって既にコンパイルされていqr//
ます。)
関数は「グローバル」フラグも受け取る可能性があり、すべての一致の (開始、終了) ペアを返す必要があります。
()
ユーザーが使用する可能性があるように、正規表現を変更することも、追加すること()
もできません\1
。使えるかも(?:)
。
例: "ababab" と regex が与えられqr/ab/
た場合、グローバルなケースでは、(開始、終了) の 3 つのペアを取得する必要があります。