Przeglądam proponowaną łatkę dostarczoną przez dostawcę do narzędzia Perla, którego używamy, i staram się zidentyfikować przyczynę określonego rodzaju zmiany - oczekiwanie na "@" do parametrów przekazanych do podprogramu.Jakie jest znaczenie podwójnego "at" (@@) w Perlu?
Na przykład, linia, która brzmiała:
my ($genfd) = @_;
Czy teraz:
my ($genfd) = @@_;
Nie będąc programistą Perl, uczę się na iść tutaj, ale do tej pory jest understand that '@_' parametry dostarczone do załączonego podprogramu.
I also understand powyższe przypisanie (gdzie '$ genfd' jest zawijany w nawiasy po lewej stronie) rzuca '@_' na listę, a następnie przypisuje zmienną skalarną 'genfd' do pierwszego elementu tej listy . Powinno to spowodować, że pierwszy parametr podprogramu będzie przechowywany w "genfd".
To, na czym się całkowicie utknąłem, to różnica, jaką powoduje drugie "@". Mam found examples of this usage on GitHub, ale nigdy z wyjaśnieniem, ani nie mogę znaleźć wyjaśnienia na żadnych odniesień Perl lub SO. Każda pomoc byłaby bardzo cenna.
(Większość plików v pojawia się w repozytoriach będących kopiami zapasowymi dysków użytkowników.) – ikegami
Dziękuję @Keith! Przeglądanie niektórych historii ", v" dla istniejących plików przedstawia tę samą składnię. Łatka jest nakładana za pomocą jakiegoś wbudowanego oszustwa, które oczekiwałbym oznacza przekazanie go do RCS/CVS jako łatki lub nowej wersji, zdrapując ucieczkę, jak to się dzieje. – thisismyrobot
@thisismyrobot: jeśli pliki mają być wewnętrznymi plikami RCS lub CVS '' v', to jest ono całkowicie poprawne - a otrzymasz poprawny Perl '@ _' podczas sprawdzania pliku z RCS lub CVS. –