私の同僚の一人が、ユーザのWindowsドメイン/ユーザ名を要求するperlスクリプトを書いていました。もちろん、次の形式を入力してください。domainname\username
。 Getopt:Longモジュールは、これを '\'文字を削除する文字列に変換し、文字列を正しく表示しません。もちろん、すべてのユーザにドメイン/ユーザコンボをdomainname\\username
と入力するように頼むこともできますが、私は本当に「プログラムではなくユーザを修正する」という罪を犯したくはありません。私たちはまた、このために作成したモジュールを使用しています。OurCompany::ColdFusionAPI
はColdFusionにアクセスするので、私はOurCompany::ColdFusionAPI
に電話します。PerlのGetopt :: Longの文字列にバックスラッシュ()を入れてください
#!/usr/bin/perl
use common::sense;
use Getopt::Long;
use OurCompany::ColdFusionAPI;
my ($server_ip, $username, $password, $need_help);
GetOptions (
"ip|server-address=s" => \$server_ip,
"user-name=s" => \$username,
"password=s" => \$password,
"h|help" => \$need_help,
);
$username ||= shift;
$password ||= shift;
$server_ip ||= shift;
if (!$server_ip or $need_help){
print_help();
exit 0;
}
my $print_hash = sub { my $a = shift; say "$_\t=> $a->{$_}" foreach keys %$a; };
...
私はラインsay $username
を追加した場合、それは単に「\」せずに文字列を与える:
私たちのコードは次のようになります。どのように私は '\'を維持するためにパールを得ることができますか? bashのread -r
の行に沿ったもの。
あなたは何を話していますか? – Axeman
なぜ最初にバックスラッシュを使用するのですか?前方スラッシュはキーボードで手が届きやすくなります。 – runrig