2011-04-05 11 views
8

Örnek:

biliyorum
my $some_variable; 
my @some_variable; 
my %some_variable; 

, @ ilkel için dizinin, $ için gibi görünüyor, tamamen doğru mu? % nedir?

+6

Gerçekten, perl'deki herhangi bir giriş seviyesi kitabı size bunu anlatabilir. –

+2

Google'da "sigil" araması yapabilirsiniz. – Benoit

+0

Bu muhtemelen bir yinelenen – DVK

cevap

7

$ skaler, @ dizisidir ve % karma değeridir.

+0

Evet, ama neden $ _ ve _ bir geçiş için geçiş parametrelerini içeren aynı? ya da ben hatalıyım? – nicola

+1

@nicola, Dizi ve karma öğeleri "$" kullanır. '$ _ [0]', '@ 'öğesinin ilk öğesidir. Her ikisi de '$ _' için geri sarılmamış. – ikegami

+5

@nicola => '_ ', bir işleve iletilen tüm argümanları içeren bir dizidir. '$ _', (@array) {...}' için olduğu gibi çalıştırılan geçerli öğeyi içeren bir skalerdir. $ _'nin '_' ile ilgisi yoktur. Muhtemelen kafanızı karıştıracak olursanız, argüman listesinin tek bir elemanına erişmek için, ilk öğeye erişen '$ _ [0]' yazarsınız. Burada sigil, bir skaler'e eriştiğinizi belirtmek için '$' olarak değişir. Ancak, [0], '_' dizisindeki skaler bir öğeye ya da başka bir deyişle @ . –

4

$ var @ diziler için, bir tek değerli skaler
@var bir dizi
% var

12

$ skalerler için bir ilişkisel dizi ya da karma (her ikisi de aynıdır) göstermektedir belirtmektedir, ve % karma içindir. Daha fazla bilgi için belgelerin Variable Types bölümüne bakın.

17

Perl ile ilgili güzel şeylerden biri, yerleşik bir el kitabına sahip olmasıdır.

perldoc perlintro 

ve bölüm Perl değişken türleri bakmak: Aşağıdaki komutu yazın. Bunu Perl değişkenleri üzerindeki perldoc.perl.org bölümüyle de görebilirsiniz.

hızlı bir bakış:

  • $ foo bir sayıl değişkendir. Bir dize, sayısal, vs. olabilen tek bir değeri tutabilir.
  • @foo bir dizisidir. Diziler birden çok değer tutabilir. Bir endeks kullanarak bu değerlere erişebilirsiniz. Örneğin $ foo [0] dizinin ilk öğesidir ve $ foo [1] dizinin ikinci öğesidir, vb. (Diziler genellikle sıfır ile başlar).
  • % foo birden fazla değerini tutmak çünkü bu bir dizi gibi, bir karma, ancak karma dizileri kilitlenmiştir. Örneğin, % parolasında bir parola karması var. Bu kullanıcı adıyla girilir ve değerler kullanıcının şifresidir. Örneğin:

    $ Şifre {Fred} = "kılıç balığı"; $ Şifre {Betty} = "gizli";

    $ user = "Fred"; print "Kullanıcı için şifre $ kullanıcı $ şifresidir {$ user} \ n"; # Swordfish $ kullanıcı = "Betty"; print "Kullanıcı için şifre $ kullanıcı $ şifresidir {$ user} \ n"; Bir karma veya dizideki tek değere atıfta zaman Dolar işareti kullanın gizli

Not dışarı #Prints. Yeni başlayanlar için biraz kafa karıştırıcı.

Sana Llama Kitabı almak öneriyoruz. Llama Book, Learning Perl ve dile mükemmel bir giriş niteliğindedir.