Co oznacza ?
Nigdy nie zobaczyć tego rodzaju kodu przed ..
Co oznacza ?
Nigdy nie zobaczyć tego rodzaju kodu przed ..
Szczególna „>: Thing” składnia instruuje system Perl IO do korzystania z określonego przez warstwę sprawa. Spójrz na PerlIO documentation dla "warstwy". Powszechne warstwy to "raw" i "utf8".
W tym przypadku pozwala to na użycie $ stdout jako pliku w pamięci, który powinien w końcu zawierać wszystko, co zostanie wysłane do STDOUT. Mówiąc bardziej ogólnie, składnia umożliwia otworzenie pliku w pamięci, a następnie wysłanie uchwytu pliku do innych funkcji, które normalnie zapisują do plików, aby można było gromadzić ich dane wyjściowe (lub dostarczać ich dane wejściowe).
można również osiągnąć ten sam rezultat poprzez otwarcie „plik”, co jest nawiązaniem do skalara:
open my $fh, ">:scalar", \$scalar or die;
open my $fh, ">", \$scalar or die;
To dostarczonych przez perlio, a realizowanego przez PerlIO::scalar, choć nie masz do „użytku "moduł umożliwiający dostęp do funkcji.
Perl używa numeru layered IO system. U dołu łańcucha znajduje się warstwa, która zajmuje się dostępem do mediów. scalar
to warstwa systemu IO, która obsługuje odczytywanie i zapisywanie do skalaru zamiast pliku. Mówiąc
open(my $fh, '>:scalar', \$scalar)
dla skalarnych uchwytami jest odpowiednikiem mówiąc
open(my $fh, '>:unix', $file_name)
dla uchwytów OS. Jest to całkowicie zbędne, ponieważ Perl już wie, że jest to uchwyt skalarny, a nie uchwyt systemu operacyjnego.
Co oznacza '>: skalar? – asker
Dodałem to na początku. – Alex