logo

Perl Komut Satırı Bağımsız Değişkenleri

Komut satırı argümanları Perl programına diğer dillerde olduğu gibi gönderilir. @ARGV dizisi komut satırı argümanını tutar. 'Kullanım katı' seçeneğini kullansanız bile değişkenleri kullanmanıza gerek yoktur. Varsayılan olarak bu değişken her zaman mevcuttur ve komut satırındaki değerler otomatik olarak bu değişkenin içine yerleştirilir. Betiğinizin komut satırı argümanlarına erişmek için @ARGV dizisinden okumanız yeterlidir.

Perl, @ARGV dizisinin dosya adı olarak kullanılmasına izin verir. $ARGV dosyasından okurken geçerli dosyanın adını içerir.

@ARGV dizi öğeleri

@ARGV dizisi normal bir diziyle aynı şekilde çalışır. İlk argümanı $ARGV[0], ikincisi $ARGV[1] vb. olacaktır.


Perl Komut Satırı Bağımsız Değişkeni Örneği

Komut satırı argümanlarını yazdırmak için basit bir örnek görelim. Bu örnekte, komut satırından argüman olarak kullanıcının adını içeren bir hoş geldiniz mesajı yazdıracağız. Kullanıcının adı ve soyadı olarak iki komut satırı argümanına ihtiyacımız var.

Aşama 1 Bir komut dosyası oluşturun hoş geldiniz.pl sisteminizde.

 #!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name.
'; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint.
'; 

Yukarıdaki scriptte öncelikle iki komut satırı argümanının sağlanıp sağlanmadığını kontrol edecektir. Aksi taktirde yanlış giriş hatası verecektir. Ve eğer evet ise, bu argümanları sırasıyla $ARGV[0] ve $ARGV[1] olarak işleyecektir.

Adım 2 Komut dosyasını konsolunuzda şu şekilde çalıştırın: perl hoş geldiniz.pl Christian Grey

Not: Bu komutu vermeden önce, hoş geldiniz.pl komut dosyanızı içeren dizinde olduğunuzdan emin olun.

Perl Komut satırı argümanları 1

Bu, konsolunuzda alacağınız çıktıdır.

Adım 2 Komut dosyasını konsolunuzda şu şekilde çalıştırın: perl hoş geldiniz.pl Hıristiyan

Burada komut satırından yalnızca bir argüman aktarıyoruz.

Perl Komut satırı argümanları 2

Çıktıda, bir argümanın iletilmesi için yanlış giriş mesajını görebilirsiniz.


Döngü Kullanarak Perl Komut Satırı Argümanları Örneği

Şimdi komut satırı argümanlarını yazdırmak için bir döngü çalıştıracağız. Bu örnekte dilediğiniz kadar argüman girebilirsiniz.

Aşama 1 Bir komut dosyası oluşturun döngü.pl sisteminizde.

 #!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args
'; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument]
'; } 

Adım 2 Komut dosyasını konsolunuzda şu şekilde çalıştırın: perl loop.pl a b c d e f g h

Perl Komut satırı argümanları 3

Yukarıdaki çıktıya bakın, aynı zamanda komut satırında iletilen toplam argümanları da görüntüler. Burada 8 argümanı geçtik.


Perl Getopt::Uzun

Basit komut satırı seçenekleri ?s seçeneği kullanılarak yapılır. Karmaşık komut satırı seçenekleri Getopt::Std ve Getopt::Long kullanılarak yapılır.

Getopt'un anlamı GetOptions . @ARGV içeriğini ona verdiğimiz konfigürasyona göre işler. İşleme bağlı olarak doğru veya yanlış değeri döndürür.

Örnek:

Bu örnekte kullanıcının yaşını komut satırından alacağız.

 use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME
'; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; } 

Bir değişken tanımladık $x içine girilen değeri saklayacak --itibaren standart konsoldan. nereden=s çağrılan komut satırı parametresini bildirir --itibaren arkasında bir dize ile. $x değişkenine daha fazla eşlenir. Ters eğik çizgi () değişkene bir referans ilettiğimiz anlamına gelir.

Bu komut dosyası şuna geçiş yapacak: the bölüm yalnızca bu betiği parametre adına benzeyen ve ile başlayan bir şeyi ileterek çalıştıracağımız zaman (-) ancak bu komut dosyasında bildirilmemiştir.

Şimdi bu programı çalıştıracağız.

Çıktı:

Perl Komut satırı argümanları 4

Çıktıya bakın, konsola age girdikten sonra yukarıdaki çıktıyı elde ettik.