Apr 27, 2021 by
Mark Gardner
[This article is part of our Popular articles project to update
Perl.com for contemporary practices]
If you’re reading this article, you’re likely looking for a simple way
to download and install the Perl programming language. Or you already
have Perl installed as part of your operating system, but it’s older
than the currently-supported versions (5.32.1 or 5.30.3) and you’d
like to use the latest and greatest features. The download
options may seem daunting, especially
if you’re new to computers or programming. We’ll take things step by
step, and soon you’ll be on your way to writing your first Perl
program.
A word of warning, though: Several of these steps (and usually Perl
itself) require using your computer’s command-line or terminal
interface.
The first step: Download pre-built
If you’re getting started in Perl development, you may only need a
pre-built binary distribution. Further on, though, you might want to
consider building your own, especially if you need to juggle different
versions to support different environments or want to use a later
version than is available pre-made.
For now, though, let’s consider the pre-built options. You have
several, depending on what computer operating system you’re using.
Microsoft Windows
The two main “flavors” of Perl for Windows are
ActiveState Perl and
Strawberry Perl. Which one you choose depends
on what you plan to use it for.
ActiveState provides a
free community edition of ActivePerl
licensed only for development purposes. If you intend to do
commercial work or want technical support beyond community forums, you’ll
need to
subscribe to a team plan or higher.
The free community edition is also 64-bit only, and as of this writing, only
the earlier versions 5.28 (2018) and 5.26 (2017) are available, with an
experimental 5.32 (2020) release licensed for any purpose. The latter is
also currently only installable via the Windows command line; earlier
versions use a standard Windows setup wizard.
Strawberry Perl is a Perl environment for
Windows that strives to be as close as possible to Perl on Unix and Linux
systems, where the language got its start. Besides the Perl binaries, it
also includes a compiler, related tools, external libraries, and database
clients. This is important as many modules for extending Perl’s
functionality need a compiler. It’s also available in both 64-bit and
32-bit editions of the current 5.32 version.
What do I recommend? There’s no escaping Perl’s Unix heritage, so you’ll
have an easier time with Strawberry Perl. That said, if you think you’ll be
taking advantage of ActiveState’s commercial offerings of support and their
ActiveState Platform for
managing different language runtimes, you may want to give them a try.
Windows also has two Linux-like environments in the form of
Cygwin and
Windows Subsystem for Linux.
Follow the Linux directions below to install Perl in one of these.
There is also the Chocolatey package manager for
Windows, which provides an option for installing either ActiveState or
Strawberry Perl.
Apple macOS
macOS comes with Perl pre-installed: version
5.18 (2013) on macOS Catalina 10.15 and 5.28 (2018) on Big Sur 11. But,
Apple has said that scripting language runtimes are deprecated,
and are only “included … for compatibility with legacy software.” You
should consider installing your own.
Like Windows, ActiveState has a
free community edition
for developers. The Windows caveats above apply, except for a current Perl
version 5.32—it’s “coming soon” as of this writing.
Your best bet is to install the Homebrew package manager
in the macOS Terminal application (after
installing its requirements),
and then issue the command brew install perl
. This will install the latest
version of Perl, as well as give you instructions for making sure that
installed Perl modules stay that way across updates by Homebrew.
Linux or another Unix-like system
Like macOS, most Linux and Unix
systems come with Perl pre-installed, or installable using the operating
system’s software package manager. Also like macOS, these are usually older
versions provided for compatibility with other software provided by the
OS.
To install your own on Linux, you can
go the ActiveState route
as above, or also use the
Homebrew package manager. There are
several requirements to install first,
and then you can
follow the directions for installing Homebrew and issue
the command brew install perl
.
For other Unix systems with an older version of Perl, I’m afraid you’re going
to have to build from source as detailed below.
Next steps: Building your own with perlbrew or plenv
Perl’s source code (the instructions that build a program) is freely
available and compiles on over 100
platforms. You can download
it directly and build a version
yourself, after installing any prerequisite packages used to build
software on your operating system (see below). However, most Perl
developers choose to use a tool to automate that process and manage
different versions of Perl side-by-side. Enter
perlbrew.
Perlbrew requires an already-installed system version of Perl, but it
can be as old as 5.8 (2002), which should cover most Linux and Unix
systems in use today. Once you’ve installed your operating system’s
build tools and followed the directions on the perlbrew home
page, typing perlbrew install 5.32.1
followed
by perlbrew switch 5.32.1
will install and switch to the latest
version of Perl as of this writing. Installing older versions of Perl
and switching between them use the same steps, e.g.:
perlbrew install 5.30.3 --as older-perl
perlbrew switch older-perl
I use an alternative, plenv,
which uses a different mechanism to manage versions of Perl using the bash
command shell. It also enables you to use different versions of Perl depending
on which file system directory you’re working in. It’s
set up
using either Homebrew or git
.
Windows users have the option of
berrybrew, which acts much like
perlbrew for Strawberry Perl with slightly different
options.
Building from the source directly
If you feel you don’t need to manage multiple installations of Perl or you
want to do things old-school, you can always download and build directly from
the source code. Select “Download Latest Stable Source” from the
Perl Download web page, then
unarchive it
into a directory.
You should always check the included README
files for information on how to
build on your system; there’s a generic one as well as specific README
s for
various platforms (README.linux
, README.macosx
, README.win32
, etc.).
Note that the README.macosx
document applies to current versions of macOS,
which was previously called Mac OS X; README.macos
is for the “Classic”
Macintosh operating system, unsupported since 2004.
On most Unix-like systems (including macOS), you can then configure, build,
test, and install Perl by issuing the following commands:
./Configure -des -Dprefix=/usr/local/
make
make test
sudo make install
This will build Perl with all default options for your system and install it
in the /usr/local
directory.
Up and running
Regardless of whether you’ve chosen to install a pre-built package or roll
your own, you should now be able to issue the following at your command line:
…and receive a reply that looks something like this:
This is perl 5, version 32, subversion 1 (v5.32.1) built for darwin-2level
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2021, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Congratulations, you’re now using the latest version of Perl on your computer!
Now head on over to Perl.org and start learning!
Установка Perl на Windows
Установка Perl на Windows
Хотите узнать, как установить Perl на компьютер под управлением Windows? В этом учебнике мы покажем вам, как установить Perl на компьютер под управлением Windows.
• Windows 2012 R2
• Windows 2016
• Windows 2019
• Windows 10
• Strawberry Perl 5.30.2.1
Плейлист Windows:
На этой странице мы предлагаем быстрый доступ к списку видео, связанных с установкой Windows.
Не забудьте подписаться на наш канал YouTube под названием FKIT.
Windows Учебник:
На этой странице мы предлагаем быстрый доступ к списку учебников для Windows.
Учебник Windows — Перл Установка
Получите доступ к веб-сайту Perl и загрузите последнюю версию установки Perl.
В нашем примере мы скачали файл под названием: STRAWBERRY-PERL-5.30.2.1-64bit.msi
Как администратор, запустите установку Perl.
Примите лицензионное соглашение и нажмите на кнопку «Следующая».
Установите нужный путь установки и нажмите на кнопку Next.
Нажмите на кнопку Установки.
Подождите, пока установка Perl закончится.
В нашем примере, Perl был установлен на следующем каталоге.
Поздравляю! Вы закончили установку Perl на Windows.
Учебник Perl — Тестирование установки
Запустите новый запрос командной строки DOS.
Проверить установленную версию Perl.
В качестве теста создайте сценарий Perl.
Используйте приложение Notepad для открытия тестового файла Perl.
Замените его содержимое следующим кодом.
Проверьте приложение Perl, используя следующую команду.
Вы также можете открыть Perl с помощью ярлыков меню «Пуск».
Поздравляю! Вы протестировали установку Perl на Windows.
VirtualCoin CISSP, PMP, CCNP, MCSE, LPIC22020-08-03T09:43:11-03:00
Related Posts
Page load link
Join Our Newsletter
Ok
Prerequisite: Introduction to Perl
Before, we start with the process of Installing Perl on our System, whether it be Windows, Linux or Macintosh. We must have first-hand knowledge of What the Perl Language is and what it actually does?. Perl is a general purpose, high level interpreted and dynamic programming language. Perl was originally developed for the text processing like extracting the required information from a specified text file and for converting the text file into a different form. Perl supports both the procedural and Object-Oriented programming. Perl is a lot similar to C syntactically and is easy for the users who have knowledge of C, C++.
Perl programs can be written on any plain text editor like notepad, notepad++, or anything of that sort. One can also use an online IDE for writing Perl codes or can even install one on their system to make it more feasible to write these codes. Using an IDE makes it easier to write Perl codes because IDEs provides a lot of features like intuitive code editor, debugger, compiler, etc.
To begin with, writing Perl Codes and performing various intriguing and useful operations, one must have Perl installed on their System. This can be done by following the step by step instructions provided below:
Checking for a preinstalled Perl version:
Before we begin with the installation of Perl, it is good to check if it might be already installed on your System, because many software applications nowadays require Perl to perform their operations, hence a version of Perl might be included in the software’s installation package and hence there is no need to redownload and install the Perl when it already exists. Many Linux systems have Perl preinstalled, also Macintosh provides a preinstalled Perl with their Systems.
To check if your device is preinstalled with Perl or not, just go to the Command line(For Windows, search for cmd in the Run dialog( + R), for Linux open the terminal using Ctrl+Alt+T
, for MacOS use Control+Option+Shift+T
)
Now run the following command:
perl -v
If Perl is already installed, it will generate a message with all the details of the Perl’s version available, otherwise if Perl is not installed then an error will arise stating Bad command or file name
Downloading and Installing Perl:
Downloading Perl:
Before starting with the installation process, you need to download it. For that, all versions of Perl for Windows, Linux, and MacOS are available on perl.org
Download the Perl and follow the further instructions for installation of Perl.
Beginning with the Installation:
Windows
Linux
MacOS
After completing the Installation process, any IDE or text editor can be used to write Perl Codes and Run them on the IDE or the Command prompt with the use of command:
perl file.pl
Here’s a sample Program to begin with the use of Perl Programming: Hello World Program in Perl
Prerequisite: Introduction to Perl
Before, we start with the process of Installing Perl on our System, whether it be Windows, Linux or Macintosh. We must have first-hand knowledge of What the Perl Language is and what it actually does?. Perl is a general purpose, high level interpreted and dynamic programming language. Perl was originally developed for the text processing like extracting the required information from a specified text file and for converting the text file into a different form. Perl supports both the procedural and Object-Oriented programming. Perl is a lot similar to C syntactically and is easy for the users who have knowledge of C, C++.
Perl programs can be written on any plain text editor like notepad, notepad++, or anything of that sort. One can also use an online IDE for writing Perl codes or can even install one on their system to make it more feasible to write these codes. Using an IDE makes it easier to write Perl codes because IDEs provides a lot of features like intuitive code editor, debugger, compiler, etc.
To begin with, writing Perl Codes and performing various intriguing and useful operations, one must have Perl installed on their System. This can be done by following the step by step instructions provided below:
Checking for a preinstalled Perl version:
Before we begin with the installation of Perl, it is good to check if it might be already installed on your System, because many software applications nowadays require Perl to perform their operations, hence a version of Perl might be included in the software’s installation package and hence there is no need to redownload and install the Perl when it already exists. Many Linux systems have Perl preinstalled, also Macintosh provides a preinstalled Perl with their Systems.
To check if your device is preinstalled with Perl or not, just go to the Command line(For Windows, search for cmd in the Run dialog( + R), for Linux open the terminal using Ctrl+Alt+T
, for MacOS use Control+Option+Shift+T
)
Now run the following command:
perl -v
If Perl is already installed, it will generate a message with all the details of the Perl’s version available, otherwise if Perl is not installed then an error will arise stating Bad command or file name
Downloading and Installing Perl:
Downloading Perl:
Before starting with the installation process, you need to download it. For that, all versions of Perl for Windows, Linux, and MacOS are available on perl.org
Download the Perl and follow the further instructions for installation of Perl.
Beginning with the Installation:
Windows
Linux
MacOS
After completing the Installation process, any IDE or text editor can be used to write Perl Codes and Run them on the IDE or the Command prompt with the use of command:
perl file.pl
Here’s a sample Program to begin with the use of Perl Programming: Hello World Program in Perl
Prerequisite: Introduction to Perl
Before, we start with the process of Downloading and Installing Perl on Windows operating system, we must have first-hand knowledge of What the Perl Language is and what it actually does?. Perl is a general-purpose, high level interpreted and dynamic programming language. Perl was originally developed for text processing like extracting the required information from a specified text file and for converting the text file into a different form. Perl supports both procedural and Object-Oriented programming. Perl is a lot similar to C syntactically and is easy for the users who have knowledge of C, C++.
Perl programs can be written on any plain text editor like notepad, notepad++, or anything of that sort. One can also use an online IDE for writing Perl codes or can even install one on their system to make it more feasible to write these codes. Using an IDE makes it easier to write Perl codes because IDEs provides a lot of features like intuitive code editor, debugger, compiler, etc.
To begin with, writing Perl Codes and performing various intriguing and useful operations, one must have Perl installed on their System. This can be done by following the step by step instructions provided below:
Checking for a preinstalled Perl version:
Before we begin with the installation of Perl, it is good to check if it might be already installed on your system, because many software applications nowadays require Perl to perform their operations, hence a version of Perl might be included in the software’s installation package and hence there is no need to redownload and install the Perl when it already exists.
To check if your device is preinstalled with Perl or not, just go to the Command line(For Windows, search for cmd in the Run dialog( + R).
Now run the following command:
perl -v
If Perl is already installed, it will generate a message with all the details of the Perl’s version available, otherwise if Perl is not installed then an error will arise stating Bad command or file name
Downloading and Installing Perl:
Downloading Perl:
Before starting with the installation process, you need to download it. For that, all versions of Perl for Windows are available on perl.org
Download the Perl and follow the further instructions for installation of Perl.
Beginning with the Installation:
After completing the installation process, any IDE or text editor can be used to write Perl Codes and Run them on the IDE or the Command prompt with the use of command:
perl file_name.pl
Here’s a sample Program to begin with the use of Perl Programming:
Let’s consider a simple Hello World Program.
use
strict;
use
warnings;
print
(
"Hello Worldn"
);
Output:
Unix
Running Linux, Solaris, AIX, HPUX, or any other UNIX-like system?
Binaries
-
Already Installed
You probably already have perl
installed. Typeperl -v
on a command line to
find out which version. -
ActiveState Perl
has binary distributions of Perl for many platforms.
This is the simplest way to install the latest version of Perl.Download ActivePerl
Mac OS X
Binaries
Already Installed
Mac OS X already has Perl installed. Open a Terminal application (in the Utilities folder of your Applications folder) and run perl -v
to find out which version.
ActiveState Perl
has binary distributions of Perl for Mac OS X.
This is the simplest way to install the latest version of Perl.
Download ActivePerl
Windows
Windows does not have Perl installed by default.
Binaries
ActiveState Perl
ActiveState offers both a free community version and a
commercially supported binary distribution of Perl for
Win32 and Perl for Win64.
Download ActivePerl
Strawberry Perl: A
100% Open Source Perl for Windows that is exactly the same as Perl
everywhere else; this includes using modules from CPAN, without the
need for binary packages. Help is available from other Windows
Perl developers on the #win32 irc channel on irc.perl.org (see website for access through a browser).
Download Strawberry Perl
Это первая часть учебника по Perl.
В ней вы узнаете, как установить Perl на Microsoft Windows и как начать
использовать его на Windows, Linux или Mac.
Вы узнаете, как установить и настроить среду разработки, или, говоря простым языком:
какой редактор или IDE использовать для Perl-программирования?
Также мы увидим стандартный пример «Hello World».
Windows
В Windows мы будем использовать DWIM Perl. Это пакет программ,
содержащий компилятор/интерпретатор Padre, Perl IDE,
и ряд модулей из CPAN.
Для начала зайдите на сайт DWIM Perl
и откройте страницу загрузки DWIM Perl для Windows.
Скачайте исполняемый файл и установите его в вашу систему. Предварительно
пожалуйста убедитесь, что у вас не установлена любая другая версия Perl.
Конечно, разные версии Perl можно заставить работать вместе, но как это сделать потребует дополнительных разъяснений.
Поэтому пусть пока у вас в системе будет установлена одна единственная версия Perl.
Linux
Большинство современных Linux-дистрибутивов поставляются со свежей версией Perl.
Её мы и будем использовать. В качестве редактора
вы можете установить Padre — большинство дистрибутивов дают возможность сделать это
с помощью стандартного менеджера пакетов. Или вы можете выбрать любой другой текстовый редактор.
Если вы дружите с Vim или Emacs, используйте его. Если нет,
попробуйте Gedit — простой и удобный.
Apple
Уверен, Маки также поставляются с предустановленным Perl, ну или вы можете легко установить его с помощью
стандартных средств установки.
Редактор и IDE
Хотя я это и советую, вовсе не обязательно использовать Padre IDE, чтобы писать код на Perl.
В следующей части учебника я перечислю пару редакторов и IDE, которые вы
можете использовать для программирования на Perl. Но даже если вы выберете другой редактор,
я бы рекомендовал — для пользователей Windows — установить упомянутый выше пакет DWIM Perl.
Он идет с большим количеством готовых Perl-модулей, это сэкономит вам массу времени и сил.
Видео
Вы можете посмотреть видео
Hello world with Perl (англ.),
которое я загрузил на YouTube. Также обратите внимание на
Beginner Perl Maven video course (англ.).
Первая программа
Ваша первая программа будет выглядеть, например, так:
use 5.010; use strict; use warnings; say "Hello World";
Рассмотрим её шаг за шагом.
Hello world
Как только вы установили DWIM Perl, вы можете нажать на
«Пуск -> Все программы -> DWIM Perl -> Padre», откроется редактор
с пустым новым файлом.
Введите:
print "Hello Worldn";
Как вы, наверное, заметили, команды в Perl заканчиваются точкой с запятой ;.
Знак n используется для обозначения перевода строки.
Строки заключены в двойные кавычки «.
Функция print печатает текст на экран.
В результате выполнения этого кода Perl выведет на экран текст, заканчивающийся переводом строки.
Сохраните файл как hello.pl, чтобы затем вы запустить его командой «Run -> Run Script».
Появится новое окно с результатами работы программы.
Готово, вы писали ваш первый Perl-скрипт.
Теперь давайте его немного усовершенствуем.
Perl в командной строке для тех, кто не пользуется Padre
Если вы не используете Padre или другую IDE,
вы не сможете запустить скрипт прямо из редактора.
По крайней мере, по умолчанию. Нужно будет открыть shell
(или cmd в Windows), перейти в каталог, где вы сохранили hello.pl
и набрать команду:
perl hello.pl
Так Perl-скрипты запускаются из командной строки.
say() вместо print()
Давайте немного улучшим наш однострочный Perl-скрипт:
Для начала нужно указать минимальную версию Perl, которую мы хотели бы использовать:
use 5.010; print "Hello Worldn";
Теперь можете запустить скрипт еще раз, выбрав в меню
«Run -> Run Script», или нажав клавишу F5.
Перед запуском файл будет автоматически сохранен.
В целом, указание минимальной требуемой версии Perl является хорошей практикой.
В нашем случае это добавляет в Perl также несколько новых функций, в том числе оператор say().
say похож на print, но короче, и
автоматически добавляет в конце символ перевода строки.
Вы можете переписать ваш код так:
use 5.010; say "Hello World";
Мы заменили print на say и убрали n с конца строки.
Сейчас вы скорее всего используете Perl версии 5.12.3 или 5.14.
Большинство современных Linux-дистрибутивов версии поставляются с Perl 5.10 или более поздней версии.
К сожалению, кое-где ещё работают старые версии Perl.
В них нет оператора say(), и, кроме того, могут потребоваться некоторые другие изменения
в примерах, которые мы рассмотрим позднее. В дальнейшем я буду отмечать, если используются возможности
версии 5.10.
«Ремни безопасности»
Помимо прочего, в каждой скрипт я настоятельно рекомендую добавлять несколько команд, меняющих
поведение Perl. Это две строки, так называемые прагмы, которые действуют подобно флагам компилятора
в других языках:
use 5.010; use strict; use warnings; say "Hello World";
Команда use говорит Perl, что нужно загрузить и использовать каждую прагму.
strict и warnings помогут вам отловить некоторые общие ошибки
в коде, а иногда даже просто не дадут вам их сделать.
Это очень удобно.
Чтение ввода
Теперь давайте ещё улучшим нашу программу: будем спрашивать у пользовательницы её имя, а затем
выводить его на экран.
use 5.010; use strict; use warnings; say "What is your name? "; my $name = <STDIN>; say "Hello $name, how are you?";
$name называется скалярной переменной, или просто: скаляр.
Переменные объявляются при помощи ключевого слова my.
(По секрету заметим, что на самом деле это одно из требований, добавленных прагмой strict).
Скалярные переменные всегда начинаются со знака доллара: $.
<STDIN> это инструмент для чтения строки с клавиатуры.
Введите наш новый код и запустите его, нажав клавишу F5.
Он спросит имя. Введите его и нажмите ENTER, чтобы сообщить Perl
об окончании ввода.
Обратите внимание, что вывод нашей программы слегка кривой: запятая после
имени появляется на новой строке. Это произошло потому, что ENTER, который вы нажали после ввода имени,
попал в переменную $name.
Избавляемся от переводов строк
use 5.010; use strict; use warnings; say "What is your name? "; my $name = <STDIN>; chomp $name; say "Hello $name, how are you?";
Это настолько распространенная в Perl задача, что есть специальная функция chomp,
которая удаляет концевой перенос строки.
Заключение
В начало каждого скрипта, который вы пишете, всегда добавляйте use strict; и use warnings;.
Также крайне рекомендуется добавлять use 5.010;.
Задания
Я обещал задания.
Попробуйте запустить следующий скрипт:
use strict; use warnings; use 5.010; say "Hello "; say "World";
Он не выводит сообщение в одну строку. Почему? Как это исправить?
Задание №2
Напишите скрипт, который запрашивает у пользовательницы два числа, одно за другим.
Затем выводит сумму этих двух чисел.
Что дальше
Следующая часть нашего учебника расскажет про
редакторы, IDE и среду разработки для Perl.
- Напишите и запустите свой первый сценарий. Все, что вам нужно для написания программ на Perl, — это текстовый редактор. …
- Напишите свой сценарий. Создайте новый текстовый файл и введите следующее точно, как показано: #! Usr / bin / perl. …
- Запустите свой сценарий. Вернувшись в командную строку, перейдите в каталог, в котором вы сохранили сценарий Perl.
4 февраля. 2019 г.
Можете ли вы запустить Perl в Windows?
Perl в Windows. Perl не входит в предустановку Windows. Для работы с программами Perl в Windows необходимо вручную загрузить и установить Perl. ActiveState предлагает полную, готовую к установке версию Perl для Windows.
Liv4ITПодписатьсяКак запустить Perl-скрипт с помощью Notepad ++
Как узнать, установлен ли Perl в Windows?
Как узнать, правильно ли установлен Perl?
- Откройте командную строку (в разделе «Стандартные» или введите «cmd» в поле «Выполнить»).
- Введите «perl -v» и нажмите ввод.
- Если Perl установлен правильно, вы должны увидеть подробную информацию об установленной версии Perl (в противном случае вы получите сообщение об ошибке)
Как установить Activestate Perl в Windows?
Вы можете установить ActivePerl, загрузив и запустив Мастер установки (.exe).
…
Запуск мастера установки ActivePerl¶
- Загрузите и сохраните установочный пакет.
- Щелкните правой кнопкой мыши файл .exe и выберите «Запуск от имени администратора».
- Следуйте инструкциям на экране, чтобы завершить установку.
Как создать путь Perl в Windows 10?
Чтобы Perl распознавался, вы должны добавить C: Perl64bin в переменную окружения PATH. Перейдите в Панель управления> Система> Расширенные настройки системы> Переменные среды. Отредактируйте строку, содержащую PATH, в верхнем поле, помеченном для переменных пользователя, и добавьте; C: Perl64bin (обратите внимание на точку с запятой) в конец.
Какой Perl лучше всего подходит для Windows?
Strawberry Perl больше похож на Perl на * nix. Он поставляется с MinGW, который может быть полезен сам по себе. Модули Perl также можно установить с помощью ppm или cpan. Я всегда использую Cygwin (xterms с bash намного лучше, чем окна cmd) и Perl, который идет с ним.
Что лучше Strawberry Perl против ActivePerl?
Strawberry Perl более Unixy в своем подходе, и я всегда был очень доволен, когда работал с ним. Однако ActivePerl из-за своей собственной системы управления пакетами доставил мне колоссальную боль, когда я с ним работал. Это важно, когда вы работаете в корпоративной среде. Оба великолепны и работают одинаково.
Как запустить Strawberry Perl в Windows?
Установка Perl в Windows (32 и 64 бит)
- Убедитесь, что у вас еще не установлена какая-либо версия Perl. (…
- Загрузите и установите Padre, IDE / редактор Perl (Strawberry Perl версии 5.12.…
- Выйти и снова войти (или перезагрузиться)
- Перейдите в меню «Пуск» и щелкните ссылку «Команда Perl».
- Чтобы убедиться, что установка работает, введите: perl -v.
Perl — умирающий язык?
Perl. … Даже если Red Monk снизит популярность Perl, потребуется много времени, чтобы язык полностью выровнялся, учитывая огромное количество устаревших веб-сайтов, которые все еще используют его код. При этом Perl требуется время, чтобы наконец избавиться от призрака.
Что лучше Python или Perl?
Как видно выше, где оба языка хороши с точки зрения приложений, на которые они нацелены, Python имеет небольшое преимущество перед Perl в качестве первого выбора для новичков из-за его чистого и легкого для понимания кода, тогда как, с другой стороны, Perl превосходит Python когда дело доходит до операций со строками и некоторых…
Что такое Perl-скрипт?
Perl — это семейство двух универсальных интерпретируемых динамических языков программирования высокого уровня. … Perl был первоначально разработан Ларри Уоллом в 1987 году как язык сценариев Unix общего назначения для облегчения обработки отчетов. С тех пор он претерпел множество изменений и доработок.
Как мне вручную установить модуль Perl в Windows?
Установите модули Perl вручную и с помощью команды CPAN
- Установите модули Perl вручную. Загрузите модуль Perl. …
- Это очень просто для одного модуля без зависимостей. Обычно модули Perl зависят от нескольких других модулей. …
- Установите модуль CPAN с помощью yum. # yum install perl-CPAN. …
- Настройте cpan в первый раз. …
- Установите модули Perl с помощью CPAN.
4 ночей. 2016 г.
Как загрузить Perl в Windows 10?
Чтобы установить Active Perl: перейдите по этой ссылке: http://www.activestate.com/activeperl и загрузите установочный файл, шаги установки не требуют пояснений. Чтобы установить Strawberry Perl: перейдите по этой ссылке: http://strawberryperl.com/ и загрузите 32-битную или 64-битную версию в зависимости от вашей системы.
Как узнать, запущен ли Perl-скрипт?
Как мне проверить, запущен ли Perl-скрипт в терминале?
- возвращает истину при простом запуске из командной строки.
- также возвращает истину при запуске ./myscript.pl | меньше или даже ./myscript.pl / dev / null 2> / dev / null.
- возвращает false при запуске в cron-задании или как CGI-скрипт.
5 сред. 2011 г.
Perl заменяет « Практический язык извлечения и отчетности », хотя для Perl нет авторизованной аббревиатуры. Вы можете создать свою собственную аббревиатуру, и никто не будет возражать. Perl был создан Ларри Уоллом в 1987 году, когда он работал в системе сообщений об ошибках и «AWK» — язык программирования, который он использовал для этой цели, мало ему помогал. Он по-прежнему главный архитектор и разработчик Perl. Если мы хотим определить Perl в одном предложении: Perl — это высокоуровневый интерпретируемый динамический язык программирования. Вам все это казалось по-гречески? (Если вы на самом деле не знаете греческий).
Perl — это язык программирования, специально разработанный для редактирования текста. В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. Д.
Давайте изложим это простым способом. Хотя компьютеры понимают только 0 и 1 (двоичный язык / машинный язык / [низкоуровневый язык]), нам, человеку, очень сложно программировать на двоичном языке. Perl — это язык программирования, который использует элементы естественного языка, слова, которые используются в общем английском языке, и, следовательно, его легче понять людям [язык высокого уровня]. Теперь есть проблема; компьютеры не могут понимать языки высокого уровня, которые мы, люди, можем легко понять. Для этого нам нужно что-то, что может перевести язык высокого уровня на язык низкого уровня. Здесь переводчик приходит к нам на помощь. Интерпретатор — это часть программного обеспечения, которая преобразует программу, написанную на языке высокого уровня, в язык низкого уровня, чтобы компьютер мог понимать и выполнять инструкции, написанные в программе. Следовательно, Perl является интерпретируемым языком программирования .
Это правда, что есть другие языки программирования, которые можно использовать для выполнения всего, что было сказано выше, тогда зачем вам конкретно использовать Perl? Perl очень прост в изучении , особенно если у вас есть опыт программирования. Perl был разработан для того, чтобы людям было легче писать и понимать, а не обрабатывать их с помощью компьютеров. Он использует регулярные выражения. Это естественный стиль языка, отличающийся от других языков программирования, которые используют определенную грамматику и синтаксис; поэтому Perl очень гибок и не навязывает вам какой-либо конкретный способ придумать решение или проблему. Perl чрезвычайно портативный.Он может работать в любой операционной системе, в которой установлен интерпретатор Perl, поэтому он не зависит от платформы. Все операционные системы Linux поставляются с Perl, поэтому вы можете запускать Perl-кодирование в Linux из коробки. Это не похоже на сценарии Shell, где код меняется в зависимости от используемого дистрибутива Linux, делая его все менее и менее переносимым. Небольшие специфические задачи в Perl становятся очень легкими и быстрыми . В этом руководстве вы узнаете, как создавать небольшие быстрые программы для конкретных задач. Давайте рассмотрим простой пример классической программы Hello World, которая используется для начала изучения любого языка программирования, в основе которого лежит UNIX:
Приведенные выше две строки кода выведут Hello, world! Разве это не было слишком просто и быстро? Студенты со знанием C, C ++ будут знать, что для получения одинакового вывода на этих языках требуется гораздо больше строк кода.
Вы можете быть удивлены, почему Perl так популярен в Интернете . Это просто, так как большинство вещей, которые происходят в сети, относятся к TEXT, а Perl очень хорош в обработке текста. Если мы сравним Perl с любым из языков, то Perl будет лучшим языком, который хорош в обработке файлов, обработке текста и выводе отчетов
Сообщество Perl твердо убеждено, что программное обеспечение должно быть свободно доступным, свободно модифицируемым и свободно распространяемым. Несколько волонтеров из сообщества Perl стремятся сделать язык программирования как можно лучше.
Обладая достаточными знаниями об истории Perl и базовых концепциях компьютерного программирования, необходимых для кодирования в Perl, пришло время погрузиться и начать работу с Perl. В следующей главе вы узнаете, как настроить Perl в своей системе и подготовиться к программированию на Perl. В этом руководстве Linux будет использоваться в качестве ОС, которую студенты будут использовать для кодирования на Perl.
Команда покажет версию Perl, если она установлена. В этом случае версия v5.14.2. Но если нет … не паникуйте …
И расслабься. Об остальном позаботятся. Просто убедитесь, что у вас есть активное подключение к Интернету.
Сначала скачайте Active Perl по этой ссылке . Выполните следующие действия, чтобы установить ActivePerl в системе Windows. Смотрите ниже скриншоты для того же.
Шаг 1: Как только вы загрузите установщик и начнете установку, вы увидите окно ниже, нажмите «Далее» для продолжения.
Шаг 2: Примите лицензионное соглашение для продолжения установки.
Шаг 3: Ниже приведены различные пакеты, которые будут установлены. По умолчанию все будет выбрано. Единственное, что отличается — это PPM (Perl Package Manager). Это утилита, предоставляемая Active Perl для установки внешних модулей или библиотек Perl в вашей системе. Нажмите Далее, чтобы продолжить.
Шаг 4: Это различные типы расширений Perl, которые можно использовать для Perl. В основном мы будем использовать .Pl, .Plx и .Pm для Perl. Модули Perl в основном используют .Pm в качестве своего расширения файла для ссылки на файл библиотеки. Выберите все параметры и нажмите кнопку «Далее».
Шаг 5: Нажмите кнопку «Установить», чтобы продолжить установку.
Шаг 6: После установки выполните команду ‘Perl –v’, чтобы проверить, успешно ли установлен Perl в вашей системе.
Существует множество вещей, которые необходимо обсудить для настройки среды Perl как в Linux, так и в Windows, так как в этой установке не будет много библиотечных файлов. Вам нужно установить их вручную. Вы можете установить их вручную, используя CPAN (Comprehensive Perl Archive Network) или PPM, который работает только для Perl Windows. Но эти файлы не являются обязательными для начала кодирования в Perl.
Помимо этой настройки Windows, вы можете использовать новую функцию Windows 10 в подсистеме Linux поверх Windows и использовать ее для запуска Perl-кода.
Не волнуйтесь, если вы не понимаете этот текст. Все будет ясно в ближайшее время. Давай и посмотри на это по линии:
Это говорит операционной системе, что нужно выполнить этот файл с программой, расположенной в / usr / bin / perl. Некоторым IDE эта строка не нужна. Если это важно, вы должны написать здесь путь к вашему переводчику. Помните! Эта специальная строка должна быть в начале вашей программы и должна начинаться с #! использовать предупреждения; Это еще одна специальная команда, которая указывает интерпретатору отображать любые предупреждения, например -w, который активирует предупреждения глобально.
Инструкция печати записывает текст на экран. Точка с запятой в конце строки сообщает интерпретатору Perl, что инструкция завершена. Вы должны поставить точку с запятой в конце каждой инструкции в коде Perl. Обратите внимание на кавычку («). Это необходимо для инструкции печати. Сохраните приведенный выше скрипт как firstprog.pl
Если у вас установлена Strawberry, вы можете просто нажать Run. Вы также можете запустить интерфейс командной строки и написать на консоли:
Если вы не можете запустить программу, убедитесь, что у вас есть право на ее запуск. Введите в Терминале:
./firstprog
Установите модули cpan минус
Модули — это набор кодов, которые используются для выполнения задач, выполняющих общие операции в нескольких программах. Если вы используете модули Perl, вам не нужно переписывать коды для выполнения той же операции. Perl может использовать такие внешние библиотеки кодов. Одна из лучших библиотек — это CPAN. Он означает «Комплексная сеть архивов Perl» и содержит огромное количество модулей Perl для использования. Это сообщество или сеть большого количества разработчиков, которые предоставляют такие модули. Установив поддержку модулей CPAN в свой модуль perl, вы можете использовать модули CPAN и упростить свою работу. Большинство модулей Perl написаны на Perl, некоторые используют XS (они написаны на C), поэтому требуется компилятор C (такую настройку легко получить — не паникуйте.Модули могут зависеть от других модулей (почти всегда от CPAN) и не могут быть установлены без них (или без конкретной версии). Стоит внимательно прочитать документацию по опциям ниже. Многие модули в CPAN теперь требуют последней версии Perl (версия 5.8 или выше). Установите скрипт cpanminus для получения, распаковки, сборки и установки модулей из CPAN, чтобы упростить установку других модулей (вы будете благодарны нам позже). УстановитьPerl-модули App-cpanminus , в командной строке введите:
cpan App::cpanminus
cpan App :: cpanminus Убедитесь, что у вас есть интернет-соединение во время загрузки и установки модулей perl.
Теперь установите любой модуль:
cpan –i <Module_Name>.
Давайте рассмотрим пример установки модуля File :: Data (это интерфейс для доступа к данным файла).
Переменная Perl
Теперь поговорим о переменных. Вы можете представить переменную как контейнер, который содержит одно или несколько значений. После определения имя переменной остается прежним, но значение или значения меняются снова и снова.
Существует 3 типа переменных:
Самые простые — это скаляры, и это наша тема сегодня
Скалярная переменная
Этот тип переменной содержит одно значение.
Его имя начинается со знака доллара и идентификатора Perl (это имя нашей переменной).
Соглашение об именовании
Если вы знакомы с другими языками программирования, вы должны знать, что существуют определенные правила именования переменных. Аналогично, в Perl есть три правила именования скаляров.
- Все скалярные имена будут начинаться с символа $. Легко запомнить, что каждое имя стоит перед префиксом $. Думайте об этом как о скаляре.
- Как и PHP. после первого символа $, который является специальным в Perl, допускаются буквенно-цифровые символы, то есть от a до z, от A до Z и от 0 до 9. Символ подчеркивания также допускается. Используйте подчеркивание, чтобы разделить имена переменных на два слова. `Но Первый символ не может быть числом««`
- Даже если числа могут быть частью имени, они не могут прийти сразу после $. Это означает, что первый символ после $ будет либо алфавитом, либо подчеркиванием. Те, кто пришел из C / C ++ фона, должны сразу же увидеть сходство. Примеры
Пример Perl:
$var; $Var32; $vaRRR43; $name_underscore_23;
Это, однако, не являются допустимыми именами скалярных переменных.
mohohoh # $ character is missing $ # must be at least one letter $47x # second character must be a letter $variable! # you can't have a ! in a variable name
Общее правило гласит: когда в Perl есть что-то одно, это скаляр. Скаляры можно читать с устройств, и мы можем использовать их в наших программах.
Два типа скалярных типов данных
- чисел
- Струны
Числа:
В этом типе скалярных данных мы можем указать:
- целые числа, просто это целые числа, как 2, 0, 534
- числа с плавающей точкой, это действительные числа, такие как 3,14, 6,74, 0,333
Примечание: в общем, интерпретатор Perl видит целые числа как числа с плавающей запятой. Например, если вы напишите 2 в своих программах, Perl увидит это как 2.0000
Целочисленные литералы:
Он состоит из одной или нескольких цифр, которым может предшествовать плюс или минус, и которые должны быть подчеркнуты.
Примеры Perl:
0; -2542; 4865415484645 #this also can be written with underscores (for clarity) : 4_865_415_484_645
Как видите, ничего особенного. Но, поверьте мне, это самый распространенный тип скаляров. Они повсюду.
Литералы с плавающей точкой:
Он состоит из цифр, опционально минус, десятичной точки и экспоненты.
Примеры Perl:
3.14; 255.000; 3.6e20; # it's 3.6 times 10 to the 20th -3.6e20; # same as above, but negative -3.6e-20; #it's negative 3.6 times 10 to the -20th -3.6E-20; #we also can use E – this means the same the lowercase version -3.6e-20
Восьмеричное, шестнадцатеричное и двоичное представление:
Это альтернатива десятичной системе. Позвольте мне показать вам восьмеричное, шестнадцатеричное и двоичное представление. Короткая таблица представляет всю важную информацию об этих странных стилях:
Представление | База | Продолжено |
---|---|---|
восьмеричный | 8 | 0 (ноль) |
шестнадцатеричный | 16 | 0x |
двоичный | 2 | 0b |
Примеры Perl:
255; # 255 in decimal notation 0377; # 255 in octal notation 0xff; # 255 in hexadecimal notation 0b11111111; # 255 in binary notation
Все эти значения для Perl означают одно и то же. Perl не хранит значения в том же формате. Он внутренне преобразует эти шестнадцатеричные, двоичные, восьмеричные в десятичные значения.
Назначение является самой распространенной операцией в скаляре, и это очень просто. Perl использует для этого знака равенства. Он берет значение выражения с правой стороны и помещает это значение в нашу переменную.
Давайте посмотрим на примеры:
$size=15; # give $size value of 15 $y = -7.78; # give $y value of -7.78
Более того, вы можете поместить в переменную не только число, но и выражение.
$z = 6 + 12 # give $z value of 18
Струны
Строки: Это также очень простой тип скаляров.
Максимальная длина строки в Perl зависит от объема памяти компьютера. Нет ограничений на размер строки, любое количество символов, символов или слов может составлять ваши строки. Самая короткая строка не имеет символов. Самый длинный может заполнить всю системную память. Программы на Perl могут быть написаны полностью в 7-битном наборе символов ASCII. Perl также позволяет вам добавлять любой 8-битный или 16-битный набор символов, иначе. не-ASCII символы в строковых литералах. Perl также добавил поддержку Unicode UTF-8.
Как и числа, есть два разных типа строк:
- Строковые литералы в одинарных кавычках
- Строковые литералы в двойных кавычках
Строковые литералы в одинарных кавычках
Одиночные кавычки используются для включения данных, которые вы хотите воспринимать буквально. Короткий пример и все должно быть понятно:
Примеры Perl:
#!/usr/bin/perl $num = 7; $txt = 'it is $num'; print $txt;
ВЫВОД:
это $ нум
Здесь из-за одинарных кавычек значение $ num не взято, и к значению $ txt добавляются буквенные символы ‘$’, ‘n’, ‘u’ & ‘m’
Строковые литералы в двойных кавычках
Двойные кавычки используются для включения данных, которые необходимо интерполировать перед обработкой. Это означает, что экранированные символы и переменные не просто буквально вставляются в более поздние операции, а оцениваются на месте. Экранирующие символы можно использовать для вставки новых строк, вкладок и т. Д.
Примеры Perl:
$num = 7; $txt = "it is $num"; print $txt;
ВЫВОД:
это 7
Здесь из-за двойных кавычек взято значение $ num, добавленное к значению $ txt
Двойные кавычки интерполируют скалярные и массивные переменные, но не хэши. С другой стороны, вы можете использовать двойные кавычки для интерполяции фрагментов как массивов, так и хэшей.
Таинственный n
Рассмотрим следующую программу
Примеры Perl:
print "hello n";
Вывод:
Привет
Perl отображает не просто «привет n», а только «привет». Почему? Потому что ‘ n’ является специальным знаком и означает, что вы хотите перейти на новую строку при отображении текста в вашей программе. напечатайте «привет n новая строка»; Следующий вопрос — есть ли другие особые признаки? Да! Но не волнуйся — только немногие. Проверьте таблицу ниже
Construct | Описание |
---|---|
п | новая линия |
р | возвращение |
т | табуляция |
е | Под.стр |
б | возврат на одну позицию |
а | колокол |
е | побег |
007 | любое восьмеричное значение ASCII (здесь 007 = колокол) |
x7f | любое шестнадцатеричное значение (здесь 7f = удалить) |
\ | обратный слэш |
» | двойная цитата |
л | строчная следующая буква |
L | строчные все последующие буквы до E |
и | заглавная следующая буква |
U | заглавными буквами все последующие буквы до E |
E | Завершить L, U |
Я знаю, что «не мало»… Но поверьте, вы должны знать только
Строка Переменная
Это та же самая операция, которую мы видим при назначении номеров. Perl получает нашу строку справа от знака равенства и помещает эту строку в переменную.
Примеры Perl:
$string = 'tutorial'; # give $string the eight-character string 'tutorial' print $string; $string = $size + 3 ; # give $string the current value of $size plus 3 print $string; $string = $ string * 5; # multiplied $string by 5 print $string;
Вывод:
tutorial315
Как видите, вы можете поместить числа и строки в одни и те же переменные. Там нет класса переменных.
Конкатенация строк (период):
Оператор конкатенации «.» объединяет две или более строки Помните! Если строка содержит кавычки, возврат каретки, обратную косую черту, все эти специальные символы необходимо экранировать обратной косой чертой.
Perl » переменная Примеры:
#!/usr/bin/perl $a = "Tom is"; $b = "favorite cat"; $c = $a ." mother's ". $b; print $c;
Вывод:
Том любимый кот мамы
Струны
«$ a», «$ b» объединяются и сохраняются в «$ c» с использованием «.» оператор.
В конце…
Преобразование между числами и строками:
Как вы знаете, Perl автоматически конвертирует числа в строку при необходимости. Откуда Perl знает, что нам нужно сейчас? Это просто — все зависит от оператора (мы поговорим об операторах позже, а теперь просто примите, что есть много операторов, разных для чисел и строк). Если оператор ожидает число, Perl будет использовать значение как число. , Если оператор ожидает строку, Perl будет использовать значение в качестве строки. Другими словами, вам не нужно беспокоиться об этом виде преобразования. Краткий пример и все должно быть понятно:
Примеры Perl:
$string = "43"; $number = 28; $result = $string + $number; print $result;
Вывод:
71
значение $ string преобразуется в целое число и добавляется к значению $ number.
Результат сложения 71 присваивается $ result.
Область действия переменной — Access Modifiers
Мы можем объявить скаляр в любом месте программы. Но вам нужно указать модификатор доступа
Есть 3 типа модификаторов
- мой
- местный
- наш
My: Используя это, вы можете объявить любую переменную, которая является специфической в пределах блока. то есть в фигурных скобках.
#!/usr/bin/perl my $var=5; if(1) { my $var_2 =$var; } print $var_2;
Нет выхода
На выходе программы ничего не будет!
В приведенном выше примере вы увидите, что объявлены две переменные: одна находится внутри блока if ($ var_2), а другая — вне блока If ($ var). Переменная, объявленная вне блока, будет доступна для блока if, но переменная, объявленная внутри блока, не будет доступна для внешней программы.
Локальный: Используя это, мы можем фактически замаскировать одни и те же значения переменных на разные значения без фактического изменения исходного значения переменной. Предположим, у нас есть переменная $ a, для которой назначено значение 5, вы можете фактически изменить значение этой переменной с помощью повторное объявление той же переменной с использованием локального ключевого слова без изменения исходного значения переменной, равного 5. Давайте посмотрим, как это работает на примере.
#!/usr/bin/perl $var = 5; { local $var = 3; print "local,$var = $var n"; } print "global,$var = $var n";
Вывод вышеупомянутой программы будет таким образом.
местный, $ var = 3
глобальный, $ var = 5
Таким образом, мы можем изменить значение переменной, не влияя на исходное значение.
Our: После того, как переменная объявлена с модификатором доступа «our», она может использоваться во всем пакете. Предположим, у вас есть модуль Perl или пакет test.pm, переменная которого объявлена с областью действия our. Эта переменная может быть доступна в любых скриптах, которые будут использовать этот пакет.
Если вы серьезно относитесь к программированию на Perl, вы должны начать свою программу с
#! / USR / местные / бен / Perl
использовать строгое;
Это поможет вам написать лучше и чище код. «Использовать строгий» включает строгую прагму, которая заставит вас объявлять переменные с моим ключевым словом.
Это хорошая практика программирования
#!/usr/local/bin/perl use strict; $var = 10; print "$var";
Результат: ошибка
#!/usr/local/bin/perl use strict; my $var = 10; print "$var";
Вывод:
10
Perl Array
Что такое Perl Array?
Массив — это специальный тип переменной, который хранит данные в форме списка; Доступ к каждому элементу можно получить с помощью номера индекса, который будет уникальным для каждого элемента. Вы можете хранить числа, строки, плавающие значения и т. Д. В вашем массиве. Это выглядит великолепно, так как же нам создать массив в Perl? В Perl вы можете определить массив, используя символ ‘@’, за которым следует имя, которое вы хотите дать. Давайте рассмотрим определение массива в Perl.
мой @array;
Вот как мы определяем массив в Perl; Вы можете подумать, как нам нужно хранить данные в нем. Существуют разные способы хранения данных в массиве. Это зависит от того, как вы собираетесь его использовать.
my @array=(a,b,c,d); print @array;
Вывод:
ABCD
Это массив с 4 элементами.
Индекс массива начинается с 0 и заканчивается до его максимального объявленного размера, в этом случае максимальный размер индекса равен 3.
Вы также можете объявить массив вышеуказанным способом; единственное отличие состоит в том, что он сохраняет данные в массив, считая пробел в качестве разделителя. Здесь qw () означает слово кавычки. Значение этой функции заключается в создании списка слов. Вы можете использовать qw несколькими способами для объявления массива.
@array1=qw/a b c d/; @array2= qw' p q r s'; @array3=qw { v x y z}; print @array1; print @array2; print @array3;
Вывод:
abcdpqrsvxyz
Предположим, вы хотите присвоить значение 5- му элементу массива, как мы собираемся это сделать.
$ array [4] = ‘e’;
Последовательный массив
Последовательные массивы — это те, где вы храните данные последовательно. Предположим, вы хотите хранить 1-10 цифр или алфавитов az в массиве. Вместо того, чтобы вводить все буквы, вы можете попробовать что-то вроде ниже —
@numbers= (1..10); print @numbers; #Prints numbers from 1 to 10;
Вывод:
12345678910
Размер массива Perl
У нас есть массив, который уже доступен, и вы не знаете, каков размер этого массива, и как это можно найти.
@array= qw/a b c d e/; print $size=scalar (@array);
Можем ли мы получить размер массива без использования функций? Да мы можем.
@array= qw/a b c d e/; print $size=scalar (@array); print "n"; print $size=$#array + 1; # $#array will print the Max Index of the array, which is 5 in this case
Вывод:
5
5
Динамический Массив
Вышеуказанный метод объявления массива называется статическим массивом , где вы знаете размер массива.
Что такое динамический массив?
Динамические массивы — это те, которые вы объявляете, не указывая для них никакого значения. Итак, когда именно мы сохраняем значения в этом массиве? Просто, мы храним их во время выполнения. Вот простая программа для этого.
Для этой задачи мы будем использовать некоторые встроенные функции Perl.
my $string="This is a kind of dynamic array"; my @array; @array=split('a',$string); foreach(@array) { print "$_ n”; # This is a special variable which stores the current value. }
Вывод:
Это
вид дина
микрофон
р-р
Y
Функция split разделяет содержимое строки на массив на основе предоставленного ей разделителя. Эта функция также удалит разделитель из строки, в данном случае это ‘a’;
Push, Pop, shift, unshift для массивов Perl:
Эти функции могут использоваться в Perl для добавления / удаления элементов массива.
- Perl Push: добавляет элемент массива в конец существующего массива.
- Perl Pop: удаляет последний элемент из массива.
- Perl Shift: удаляет первый элемент из массива.
- Perl Unshift: добавляет элемент в начале массива.
Давайте посмотрим на пример, где мы можем использовать следующие функции.
@days = ("Mon","Tue","Wed"); print "1st : @daysn"; push(@days, "Thu"); # adds one element at the end of an array print "2nd when push : @daysn"; unshift(@days, "Fri"); # adds one element at the beginning of an array print "3rd when unshift : @daysn"; pop(@days); print "4th when pop : @daysn"; # remove one element from the last of an array. shift(@days); # remove one element from the beginning of an array. print "5th when shift : @daysn";
Вывод:
1-е: пн вт ср
2-й, когда толчок: пн вт ср чт
3-й в нерабочее время: пт пн вт ср чт
Четвертый, когда поп: пт пн вт ср
5-е, когда смена: пн вт ср
Perl Hashes
Зачем нам хэш?
Мы уже узнали о скалярах и массивах в предыдущих разделах.
Что именно скаляры делают? Он хранит только целые числа и строки.
Что именно делают массивы? Это коллекция скаляров, где вы получаете доступ к каждому элементу массива с помощью индексов. Но разве это хорошая идея использовать массив, когда у вас есть сотни и тысячи записей? Мы забудем, какой индекс имеет какое значение. Чтобы преодолеть эту ситуацию, у нас есть что-то вроде perl hash.
Что такое хеши?
Хеш также может содержать столько скаляров, сколько может содержать массив. Разница лишь в том, что у нас нет индекса, у нас есть ключи и значения. Хеш может быть объявлен, начиная с%, после которого следует имя хеша. Давайте посмотрим пример, как мы можем определить хеш Perl и как мы можем отличить это от массива
Рассмотрим пример трех человек и их возраст представлен в массиве.
@array=('Sainath',23,'Krishna',24,'Shruthi',25); #This is how an array looks. print @array;
Вывод:
Sainath33Krishna24Shruthi25
Таким образом, трудно узнать индивидуальный возраст, так как нам нужно помнить оба указательных местоположения имени и возраста всех людей. Это может быть просто, когда у вас есть 3 имени, но когда у вас есть 1000 или больше? Ты знаешь ответ.
Это мы можем преодолеть с помощью хэша.
Пример хеширования:
print %hash=( 'Sainath' => 23, 'Krishna' => 24, 'Shruthi' => 25); # This is how we create a hash. print %hash=('Sainath',23,'Krishna',24,'Shruthi',25);# This way of assigning is called list.
Вывод:
Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi25
Теперь мы объявили хеш, отлично !! Но как нам получить к нему доступ или распечатать? Каждый элемент в хэше должен быть доступен с соответствующим ключом, для которого будет назначено значение. Таким образом, существует одно-одно соответствие между каждым ключом и значением в хэше.
Чтобы напечатать возраст любого человека, вам просто нужно запомнить имя этого человека.
print $hash{'Krishna'}; # This how we should access a hash. Key enclosed within {}.
Возможно, вы задались вопросом, почему я использовал $ hash {KeyName}, помните, что хеш — это снова коллекция скаляров. Таким образом, мы можем использовать $, который представляет скаляр для доступа к каждому хеш-элементу.
Примечание: каждый ключ в хэше должен быть уникальным, иначе он переопределит ваше значение, которое было присвоено ранее.
Как мы можем присвоить хеш другому хешу? Простой, так же, как мы делаем для
Мы также можем напечатать весь хэш.
%hash=( 'Tom' => 23); %newHash=%hash; # Assigning hash to a new hashprint %newHash; print %newHash;
Вывод:
Tom23
Добавить Perl Hashes
Как видите, у нас уже есть хеш% newHash, и теперь нам нужно добавить в него больше записей.
$newHash{'Jim'}=25; $newHash{'John'}=26; $newHash{'Harry'}=27; print %newHash;
Вывод:
Jim25John26Harry27
Perl Delete key
Вы можете удалить запись из хэша. Вот как мы можем это сделать.
delete $newHash{'Jim'};#This will delete an entry from the hash.
Delete — это встроенная функция Perl. Здесь мы увидим пример присвоения хеша массиву.
@array=%newHash; print "@array";
Примечание: всякий раз, когда вы печатаете хеш или когда вы сохраняете хеш в массив. Порядок всегда может отличаться. Это не то же самое всегда.
Мы можем назначить только ключи или значения хеша массиву.
@arraykeys= keys(%newHash); @arrayvalues=values(%newHash); print "@arraykeysn"; print "@arrayvaluesn"; # n to print new line.
Чтобы удалить все записи в хэше, мы можем напрямую присвоить хешу значение null.
% newHash = (); # Это переопределит хеш без записей.
Perl Условные заявления
Мы можем использовать условные выражения в Perl. Итак, каковы условные заявления? Условные операторы — это те, в которых вы на самом деле проверяете соответствие некоторых обстоятельств вашему коду.
Вспомните пример: вы покупаете фрукты и вам не нравится, когда цена превышает 100 баксов. Итак, правило здесь составляет 100 баксов.
Perl поддерживает два типа условных операторов; они, если и если.
Perl If
Если блок кода будет выполнен, когда условие истинно.
my $a=5; if($a==5) { print "The value is $a"; }
Вывод:
5
Perl If Else
Это выглядит хорошо. Давайте подумаем о ситуации, когда $ a не равно 5.
my $a=10; if($a==5) { print "The values is $a ---PASS"; } else { print "The value is $a ---FAIL"; }
Вывод:
Значение 10 — FAIL
Таким образом, мы можем контролировать только одно условие одновременно. Это ограничение? Нет, вы также можете контролировать различные условия, используя if … elsif … else.
Perl Else If
my $a=5; if($a==6) { print "Executed If block -- The value is $a"; } elsif($a==5) { print "Executed elsif block --The value is $a"; } else { print "Executed else block – The value is $a"; }
Вывод:
Выполнен блок elsif — значение 5
В вышеприведенном случае блок elsif будет выполнен, так как $ a равно 5.
Могут быть ситуации, когда блоки кода if и elsif будут неуспешными. В этом случае блок кода else будет выполнен. Вы можете на самом деле исключить проверку кода else, если не хотите включать.
Вложенный Perl If
В этом случае вы можете использовать блок кода еще в одном блоке кода.
my $a=11; #Change values to 11,2,5 and observe output if($a<10){ print "Inside 1st if block"; if($a<5){ print "Inside 2nd if block --- The value is $a"; } else{ print " Inside 2nd else block --- The value is $a"; } } else{ print "Inside 1st else block – The value is $a"; }
Output:
Inside 1st else block – The value is 11
Execute the same code by change the value of $a; you can find out the rest.
Perl Unless
You have already got an idea what if does (If the condition is true it will execute the code block). Unless is opposite to if, unless code block will be executed if the condition is false.
my $a=5; unless($a==5) { print "Inside the unless block --- The value is $a"; } else { print "Inside else block--- The value is $a"; }
Output:
Inside 1st else block – The value is 5
Guess what will be the output. You are right!!!!!. The output will be the print statement of the else block. Because of the condition in unless code block is true, remember unless block will be executed only if the condition is false. Change the value of $a and execute the code you will see the difference.
Perl Using if
$a= " This is Perl"; if($a eq "SASSDSS"){ print "Inside If Block"; } else { print "Inside else block" }
Output:
Inside else block
Using unless
$a= " This is Perl"; unless($a eq "SASSDSS"){ print "Inside unless Block"; } else { print "Inside else block" }
Output:
Inside unless Block
Perl Loops — Control Structures
Perl supports control structures similar to other programming languages. Perl supports four types of control structures for, foreach, while and until. We use these statements to, repeatedly execute some code.
For loop Perl
Блок кода будет выполняться до тех пор, пока условие не будет выполнено. Давайте рассмотрим пример того, как Perl зацикливает массив.
my @array=(1..10); for(my $count=0;$count<10;$count++) { print "The array index $count value is $array[$count]"; print "n"; }
Вывод:
Значение индекса массива 0 равно 1
Значение индекса массива 1 равно 2
Значение индекса массива 2 равно 3
Значение индекса массива 3 равно 4
Значение индекса 4 массива равно 5
Значение индекса 5 массива равно 6
Значение индекса 6 массива равно 7
Значение индекса массива 7 равно 8
Значение индекса массива 8 равно 9
Значение индекса массива 9 равно 10
Здесь в выражении for () содержится много операторов. Для каждого из них есть смысл.
для (инициализация; условие; увеличение)
Вот еще один способ использования для.
for(1..10) { print "$_ n"; print "n"; }
Вывод:
1n
2n
3n
4n
5n
6n
7п
8л
9п
10n
Perl Foreach
Для каждого оператора можно использовать так же, как и для; Основное отличие состоит в том, что мы не проверяем и не увеличиваем условия.
Давайте возьмем тот же пример с perl perach.
my @array=(1..10); foreach my $value (@array) { print " The value is $valuen"; }
Вывод:
Значение 1
Значение 2
Значение 3
Значение 4
Значение 5
Значение 6
Значение 7
Значение 8
Значение 9
Значение 10
Foreach берет каждый элемент массива и присваивает это значение переменной $ var для каждой итерации. Мы также можем использовать $ _ для того же.
my @array=(1..10); foreach(@array) { print " The value is $_ n"; # This is same as the above code. }
Вывод:
Значение 1
Значение 2
Значение 3
Значение 4
Значение 5
Значение 6
Значение 7
Значение 8
Значение 9
Значение 10
Это выглядит хорошо для доступа к массивам. Как насчет хэшей, как мы можем получить хеш-ключи и значения, используя foreach?
Мы можем использовать foreach для доступа к ключам и значениям хеша, зациклив его.
my %hash=( 'Tom' => 23, 'Jerry' => 24, 'Mickey' => 25); foreach my $key (keys %hash) { print "$key n"; }
Вывод:
Микки
Том
Джерри
Возможно, вам интересно, почему мы использовали ключи в foreach (). Keys — это встроенная функция Perl, где мы можем быстро получить доступ к ключам хеша. Как насчет ценностей? Мы можем использовать функцию values для доступа к значениям хеша.
my %hash=( 'Tom' => 23, 'Jerry' => 24, 'Mickey' => 25); foreach my $value(values %hash) # This will push each value of the key to $value { print " the value is $value n"; }
Вывод:
значение 24
значение 23
значение 25
Perl Пока
Цикл Perl while — это управляющая структура, в которой блок кода будет выполняться до тех пор, пока условие не станет истинным.
Блок кода выйдет, только если условие ложно.
Давайте рассмотрим пример цикла Perl While.
Вот проблема, которая потребует ввода от пользователя и не завершится, пока число не будет указано как «7».
#!/usr/bin/perl $guru99 = 0; $luckynum = 7; print "Guess a Number Between 1 and 10n"; $guru99 = <STDIN>; while ($guru99 != $luckynum) { print "Guess a Number Between 1 and 10 n "; $guru99 = <STDIN>; } print "You guessed the lucky number 7"
Вывод:
Угадай число от 1 до 10
9
Угадай число от 1 до 10
5
Угадай число от 1 до 10
7
Ты угадал счастливое число 7
В приведенном выше примере условие while не будет истинным, если мы введем ввод, отличный от ‘7’.
Если вы видите, как здесь работает while, блок кода будет выполняться, только если условие в какое-то время выполнено.
Perl do-while
Цикл do while будет выполнен хотя бы один раз, даже если условие в секции while ложно.
Давайте возьмем тот же пример, используя do while.
$guru99 = 10; do { print "$guru99 n"; $guru99--; } while ($guru99 >= 1); print "Now value is less than 1";
Вывод:
10
9
8
7
6
5
4
3
2
1
Теперь значение меньше 1
Perl пока
До блока кода похож на, если только в условном выражении. Здесь блок кода будет выполняться только в том случае, если условие, пока блок не будет ложным.
Давайте возьмем тот же пример, который мы использовали в случае какое-то время.
Вот проблема, которая потребует ввода от пользователя и не завершится, пока имя не будет указано как «sai».
print "Enter any name n"; my $name=<STDIN>; chomp($name); until($name ne 'sai') { print "Enter any name n"; $name=<STDIN>; chomp($name); }
Вывод:
Введите любое имя Сай
Perl до-до:
Do, пока можно использовать только тогда, когда нам нужно условие, чтобы быть ложным, и оно должно быть выполнено, по крайней мере, один раз.
print "Enter any name n"; my $name=<STDIN>; chomp($name); do { print "Enter any name n"; $name=<STDIN>; chomp($name); }until($name ne 'sai');
Вывод:
Введите любое имя Говард
Введите любое имя Шелдон
Введите любое имя Сай
Выполните примеры кодов while, do-while, then и do-till, чтобы увидеть разницу.
Perl Operator
Что такое оператор?
Операторы на компьютерном языке указывают действие, которое может быть выполнено для некоторого набора переменных или значений, которые может понять компьютер. Perl включает большинство операторов из языка Си. В Perl много операторов по сравнению с другими языками программирования. Операторы подразделяются на арифметические, логические, реляционные операторы и операторы присваивания.
Арифметические операторы:
Арифметические операторы — это операторы, которые могут использоваться для выполнения некоторых основных математических операций. Эти арифметические операторы являются бинарными операторами, где нам нужно два аргумента для выполнения базовой операции. Мы также можем использовать унарные операторы для других основных операций; Вы можете увидеть разницу в примерах ниже.
оператор |
Описание |
пример |
---|---|---|
+ |
Операция сложения, используемая для добавления двух значений или переменных удерживающие ценности |
$ Х = 5 + 6; # или $ Y = 6; $ Г = $ х + $ у; |
— |
Оператор вычитания, используемый для вычитания двух значений или переменных, содержащих значения |
$ Х = 6-5; # или $ Y = 6; $ Г = $ х $ у; |
* |
Оператор умножения, используемый для умножения двух значений или переменных, содержащих значения |
$ Х = 6 * 5; # или $ Y = 6; $ Г = $ х * $ у; |
/ |
Оператор деления используется для деления двух значений или переменных, содержащих значения |
$ X = 36/6; # или $ Y = 6; $ Г = $ х / $ у; |
** |
Экспоненциальный оператор, используемый для обеспечения экспоненты и получения значения. Пример: 2 2 = 4, 3 3 = 27 |
$ Х = 5 ** 5; # или $ Х = 4; $ Y = 2; $ Г = $ х ** $ у; |
% |
Оператор модуля, используемый для получения напоминания при делении двух значений или переменных, содержащих значения |
$ X = 5% 2; # или $ Х = 10; $ Y = 2; $ z = $ x% $ y; |
++ |
Унарный оператор сложения для увеличения значения переменной на 1 |
$ Х = 5; $ Х ++; Или ++ $ х; |
— |
Унарный оператор вычитания для уменьшения значения переменной на 1 |
$ Х = 5; $ X—; # пост декремент Или — $ x; # до уменьшения |
Пример выполнения всех вышеперечисленных операций.
my $x=10; my $y=2; my $z; $z=$x+$y; print ("Add of $x and $y is $z n"); $z=$x-$y; print ("Sub of $x and $y is $z n"); $z=$x*$y; print ("Mul of $x and $y is $z n"); $z=$x/$y; print ("Div of $x and $y is $z n"); $z=$x**$y; print ("Exp of $x and $y is $z n"); $z=$x%$y; print ("Mod of $x and $y is $z n");
Вывод:
Добавить 10 и 2 12
Саб 10 и 2 8
Мул 10 и 2 20
Div 10 и 2 5
Эксп 10 и 2 это 100
Мод 10 и 2 0
Операторы присваивания:
Операторы присваивания просто присваивают значения переменным, но здесь нужно помнить еще одну вещь: операторы присваивания также будут выполнять арифметические операции и присваивать новое значение той же переменной, над которой выполняется операция.
оператор |
Описание |
пример |
---|---|---|
+ = |
Оператор сложения, используемый для добавления и присвоения значения одной и той же переменной |
$ Х = 4; $ Х + = 10; |
знак равно |
Оператор вычитания, используемый для вычитания и присвоения значения одной и той же переменной |
$ Х = 4; $ Х = 10; |
знак равно |
Оператор умножения, используемый для добавления и присвоения значения одной и той же переменной |
$ Х = 4; $ Х * = 10; |
знак равно |
Оператор деления, используемый для деления и присвоения значения одной и той же переменной |
$ Х = 4; $ Х / = 10; |
знак равно |
Экспоненциальный оператор, используемый для получения показателя и присвоения значения той же переменной |
$ Х = 4; $ Х ** = 10; |
знак равно |
Оператор модуля используется для получения напоминания во время деления и присвоения значения той же переменной |
$ Х = 10; $ Х% = 4; |
Пример выполнения всех вышеперечисленных операций.
my $x=10; $x+=5; print("Add = $xn"); $x-=5; print("Sub= $xn"); $x*=5; print("Mul = $xn"); $x/=5; print("Div = $xn");
Вывод:
Добавить = 15
Sub = 10
Мул = 50
Div = 10
Логические и реляционные операторы:
Perl использует логические операторы для сравнения чисел и строк. Большую часть времени логические операторы используются в условных выражениях.
оператор |
Описание |
---|---|
== или экв |
Оператор используется для проверки, равны ли обе переменные |
! = Или ne |
Оператор используется для проверки, не равны ли обе переменные |
> или GT |
Оператор проверял, А больше, чем В |
<или lt |
Оператор проверял, А меньше чем В |
> = или ge |
Оператор проверял, A больше или равно B |
<= или le |
Оператор проверял, А меньше или равно В |
|| или или |
Оператор, используемый для проверки удержания значения A или B |
&& или и |
Оператор, используемый для проверки как А, так и В, удерживает значение |
Давайте возьмем пример, где мы можем объяснить все сценарии.
my $x=5; my $y=5; if($x == $y){ print ("True -- equal $x and $y n"); } else{ print ("False -- not equal $x and $yn"); } $x=6; $y=7; if($x != $y){ print ("True -- not equal $x and $yn"); } else{ print ("False -- equal $x and $yn"); } if($y > $x){ print ("True -- $y greater than $xn"); } else{ print ("False -- $y greater than $xn"); } if($x < $y){ print ("True -- $x less than $yn"); } else{ print ("False -- $x less than $yn"); } if($x <= $y){ print ("True -- $x less than $yn"); } else{ print ("False -- $x less than $yn"); } if($y >= $x){ print ("True -- $y greater than $xn"); } else{ print ("False -- $y greater than $xn"); }
Вывод:
True — равно 5 и 5
Правда — не равно 6 и 7
True — 7 больше 6
Правда — 6 меньше 7
Правда — 6 меньше 7
True — 7 больше 6
Вы можете увидеть примеры логических операторов в следующих разделах.
Perl Специальные Переменные
Что такое специальные переменные Perl?
Специальные переменные в Perl — это те, которые имеют предопределенное значение. Эти переменные обозначены реальными именами или символами пунктуации. У нас есть специальная переменная для всех переменных, поддерживаемых Perl, таких как скалярные специальные переменные, специальные переменные массива, специальные переменные хеша. Большинство специальных переменных, которые мы используем, являются скалярами.
Когда мы хотим использовать специальную переменную с ее именем, мы должны загрузить модуль Perl «использовать английский», чтобы явно сказать интерпретатору Perl, что мы собираемся использовать специальные переменные, используя его имя.
Скалярные специальные переменные
переменная |
Описание |
---|---|
$ _ $ ARG |
Это переменная по умолчанию, которая хранит текущие значения. |
$ 0 или $ PROGRAM_NAME |
Хранит имя файла сценария Perl. |
$ / |
Разделитель входной записи, по умолчанию используется значение n, которое является символом новой строки. |
$. |
Содержит номер текущей строки файла, который читается |
$, |
Разделитель выходных полей, в основном используется оператором print (). По умолчанию это значение равно 0, мы можем изменить значение этой переменной. |
$ |
Выходной разделитель записей, значение этой переменной будет пустым; мы можем присвоить ему любое значение, которое будет использоваться оператором print () при печати вывода. |
$ # |
Эта переменная используется для формата вывода при печати чисел. |
$% $ FORMAT_PAGE_NUMBER |
Будет содержать номер текущей страницы прочитанного файла. |
$ = $ FORMAT_LINES_PER_PAGE |
Будет держать текущую длину страницы прочитанного файла. |
$ — $ FORMAT_LINES_LEFT |
Содержит количество строк, оставшихся для печати со страницы. |
$ ~ $ FORMAT_NAME |
Имя формата: содержит формат выбранного в настоящий момент вывода по умолчанию для имени дескриптора файла. |
$ ^ $ FORMAT_TOP_NAME |
Содержит значение формата заголовка обработчика файла, по умолчанию значением будет _TOP, за которым следует имя дескриптора файла. |
$ | $ OUTPUT_AUTOFLUSH |
По умолчанию это ноль; это используется для очистки выходного буфера после каждой записи () или печати (). |
$$ |
Будет содержать номер запущенного процесса интерпретатора Perl. |
$? |
Код состояния: канал и системный вызов. Статус возврата выполненной команды. |
$ & $ MATCH |
Используемый в регулярных выражениях, он будет содержать строку последнего успешного сопоставления с образцом. |
$ `$ PREMATCH |
Используемый в регулярных выражениях, он будет содержать строку, которой предшествует последнее успешное сопоставление с образцом. |
$ ‘$ POSTMATCH |
Используемый в регулярных выражениях, он будет содержать строку, за которой следует последнее успешное сопоставление с образцом. |
$ + $ LAST_PAREN_MATCH |
Содержит строку последней скобки, которая соответствует последнему поиску по шаблону. |
$ <Цифра> |
1, 2, 3 … Содержит значения шаблона, сопоставленные по порядку. |
$ [ |
Первый индекс: массив, подстрока. |
$] |
Версия Perl. |
$» |
Разделитель, используемый для элементов списка, по умолчанию имеет значение пробела. |
$; |
Подстрочный разделитель, используемый в многомерных массивах |
$! |
В числовом контексте печатает номер ошибки. В строковом контексте выведите ошибку. |
$ @ |
Будет содержать информацию об синтаксической ошибке, используемую при использовании eval (). |
$ < |
Содержит реальный UID (идентификатор пользователя) процесса, выполняющего скрипт. |
$> |
Содержит эффективный UID процесса, выполняющего скрипт. |
$ ( |
Содержит реальный GID (идентификатор группы) процесса, выполняющего скрипт. |
$) |
Содержит эффективный GID процесса, выполняющего скрипт. |
$ ^ D $ DEBUGGING |
Содержит текущее значение флагов отладки. |
$ ^ C |
Содержит текущее значение флага, когда используется ключ командной строки –c. |
$ ^ F |
Максимальный системный файловый дескриптор, по умолчанию, установлен на 2 |
$ ^ I $ INPLACE_EDIT |
Содержит значение параметра -i командной строки. |
$ ^ M |
Специальный пул памяти может использоваться, когда скрипт Perl умирает из-за ошибки памяти. |
$ ^ O $ OSNAME |
Информация об операционной системе сохраняется. «Linux» для систем Linux, «mswin32» для систем Windows. |
$ ^ T $ BASETIME |
Время запуска скриптов в секундах. |
$ ^ W $ WARNING |
Текущее значение параметра командной строки –w. Предупреждающий выключатель. |
$ ARGV |
Имя текущего файла, когда используется <>. |
Специальные переменные массива:
переменная |
Описание |
---|---|
@INC |
Содержит список путей, по которым можно просматривать модули или скрипты библиотеки Perl при выполнении текущего скрипта. Этот @INC используется пользователем и требует, чтобы операторы просматривали эти пути для библиотечных модулей. |
@ARGV |
Хранит переданные аргументы командной строки. |
@_ |
Используется в подпрограммах при передаче параметров в подпрограммы. |
@F |
Это массив, в котором хранятся входные строки при автоматическом разделении –a (используется переключатель командной строки). |
Хеш-переменные:
переменная |
Описание |
---|---|
% INC |
Имя файла будет ключом; значения будут путем к этим файлам. Используется, делать, использовать и требовать. |
% ENV |
Системные переменные среды. |
% SIG |
Обработчик сигналов. |
Примеры Perl:
my $str= "Hello World"; $str =~ /llo/; print "$&n"; # this will hold string of the last successful pattern match print "$'n"; #this will hold remaining string after patter match is done. print "$`n"; #this will hold the string before the patter match. $= "--"; #output record separator (Check output of print on output screen) my $a =5; my $b =6; print "$a"; print "$b"; $="n"; my @array = qw(a b c d); print ""; $"="-"; # output record separator arrays (Check output of print on output screen) print "@array";
Вывод
LLO
Мир
Он
5—6—
ABCD
Perl регулярное выражение
Что такое регулярное выражение?
Регулярное выражение Perl достаточно сильное для сопоставления строковых шаблонов внутри операторов или группы операторов. Регулярные выражения в основном используются при разборе текста, сопоставлении с образцом и многом другом в зависимости от требований. У нас есть определенные операторы, которые специально используются для привязки шаблона регулярного выражения = ~ и! ~. Это операторы тестирования и присваивания.
Операторы регулярных выражений
- Perl Match — m //
- Perl Substitute — s ///
- Perl Transliterate — tr ///
Прежде чем идти дальше, нам нужно немного узнать о регулярном выражении; Есть некоторые вещи, такие как мета-символы, шаблоны в синтаксисе Perl Regex.
голец |
Смысл |
---|---|
|
Специальный или цитата |
* |
Совпадение 0 или более символов |
+ |
Совпадение 1 или более символов |
? |
Совпадение 0 или 1 символ |
| |
Может использоваться, чтобы соответствовать альтернативным образцам |
() |
Используется для хранения сопоставленного шаблона |
[] |
Набор символов может быть передан. Специально используется для цифр и алфавитов. |
{} |
Используется для предоставления количества раз, когда может быть выполнено совпадение. |
^ |
Начало строки |
$ |
Конец строки |
ш |
Используется для сопоставления одного символа или слова, которые могут быть буквенно-цифровыми, включая «_» |
W |
Совпадение с чем угодно, кроме буквенно-цифровых |
s |
Используется для сопоставления пробелов |
S |
Сопоставьте что-нибудь кроме пробела |
d |
Соответствие номера. Не десятичные значения и отрицательные значения |
D |
Совпадение с чем угодно, кроме чисел. |
т |
Соответствие табуляции |
п |
Соответствие новой строки |
Выше приведен набор символов, которые можно использовать во время сопоставления с образцом.
Давайте посмотрим несколько примеров.
Рассмотрим ситуацию, когда пользователь вводит некоторые данные во время выполнения скрипта, и мы хотим проверить, вводил ли пользователь какое-либо имя в качестве ввода или нет. Мы должны написать синтаксис регулярного выражения, чтобы извлечь ваше имя и напечатать его.
my $userinput="Guru99 Rocks"; if($userinput=~m/.*(Guru99).*/) { print "Found Pattern"; } else { print "unable to find the pattern"; }
Вывод:
Найденный образец
Здесь мы записали регулярное выражение как /.*(Guru99).*/.* соответствует всем символам в строке. A ‘.’ в perl регулярное выражение соответствует любому символу, включая пробел.
Давайте посмотрим, как именно мы можем построить регулярное выражение.
Рассмотрим пример строки из нескольких слов, цифр и специальных символов, таких как «Привет всем, это мой номер: + 91-99298373639»;
Регулярное выражение: / ^ w + s w + s w + s w + s w + s w + : + d + — d + / i
Пространство слова Пространство слова Пространство слова Пространство слова Пространство слова Специальный символ: специальный символ пробела + специальный символ цифр — цифры.
Perl Match Операторы
Операторы соответствия используются для сопоставления строки в некотором операторе или в переменной.
my $var="Hello this is perl"; if($var=~m/perl/) { print "true"; } else { print "False"; }
Вывод:
правда
Этот небольшой код выведет «true», так как сопоставление с шаблоном perl идентифицирует строку в переменной. По сути, Perl ищет текст, предоставленный в // по всей строке, даже если он найдет в одном месте, он вернет ‘true’. Шаблон может быть где угодно в переменной. Мы можем попробовать заменить = ~ на! ~, Чтобы увидеть разницу между этими двумя операторами.
Оператор замещения Perl
Этот оператор можно использовать для поиска и замены любого символа на ноль или какой-либо другой символ.
my $a="Hello how are you"; $a=~s/hello/cello/gi; print $a;
Вывод:
виолончель как дела
Примечание: мы можем фактически использовать любую строку сопоставления с образцом, как мы делали ранее в этом операторе подстановки. Здесь мы использовали ‘gi’, g-глобально, i-ignore case.
Оператор перевода Perl
Это похоже на Подстановку, но не использует регулярные выражения perl, скорее мы можем напрямую передать значение или слово, которое мы хотим заменить.
my $a="Hello how are you"; $a=~tr/hello/cello/; print $a;
Вывод:
Привет корова ты
Perl File I / O
Perl был разработан для эффективного управления файлами и операциями ввода-вывода. Основное преимущество Perl заключается в разборе файлов и обработке файлов. Есть много встроенных функций и операторов, используемых при обработке файлов в Perl.
По сути, файловые операции, выполняемые с Perl, выполняются с использованием FILEHANDLE. Мы должны определить этот FILEHANDLE во время открытия файла для чтения или записи.
В этом уроке вы узнаете
Perl Открыть файл
Мы можем открыть файл с помощью функции open (), доступной в Perl.
open(FILEHANDLE, "filename or complete path of the file");
Теперь мы открыли файл, теперь возникает вопрос. Это для чтения или письма?
Perl Read file и Perl Write file
В Perl есть определенные режимы, которые необходимо использовать для чтения, записи или добавления файла.
Read – open(my $fh,"<filename or complete path of the file"); Write – open(my $fh,">filename or complete path of the file"); Append – open(my $fh,">>filename or complete path of the file");
Несколько примеров для чтения файла:
Представьте, что у нас есть файл perl с именем file.txt и в нем всего несколько строк текста. Нам нужно открыть этот файл и распечатать то же самое.
open(FH,"<file.txt"); while(<FH>) # Looping the file contents using the FH as a filehandle. { print "$_"; } close FH;
или
open(FH,"<file.txt"); my @content=<FH>; # specifying the input of the array is FH. foreach(@content) { print "$_"; } close FH;
Это напечатает содержимое файла на экране вывода.
Теперь мы напишем программу для создания и записи данных в файл Perl.
open(FH,">test.txt"); my $var=<>; print FH $var; close FH;
Это запишет ввод, предоставленный во время выполнения, и создаст файл test.txt, который будет иметь ввод.
Приведенный выше способ всегда будет пытаться создать файл с именем test.txt и записать входные данные в файл; мы напишем то же самое, чтобы добавить файл.
open(FH,">>test.txt"); my $var=<>; print FH $var; close FH;
Режимы |
Описание |
---|---|
< |
Читать |
+ < |
Читает и пишет |
> |
Создает, пишет и усекает |
+> |
Читать, писать, создавать и усекать |
>> |
Пишет, добавляет и создает |
+ >> |
Читать, писать, добавлять и создавать |
Теперь, когда мы должны увидеть, как читать, писать и добавлять файлы, используя основные примеры.
Мы увидим еще несколько примеров и других функций, которые помогут лучше понять файлы.
Perl Tell
Этот метод будет возвращать текущую позицию FILEHANDLER в байтах, если он указан, иначе он будет рассматривать последнюю строку как позицию.
open(FH, "test.pl"); while(<FH>) { $a=tell FH; print "$a"; }
Perl Seek
Функция поиска похожа на системный вызов fseek. Этот метод используется для позиционирования указателя файла в определенном месте путем указания байтов, за которыми следует либо начало указателя файла, либо конец указателя файла.
seek FH, bytes, WHENCE;
WHENCE — позиция указателя файла для запуска. Ноль будет устанавливать его с начала файла.
Пример. Пусть input.txt содержит данные типа «Привет, это мой мир».
open FH, '+<','input.txt'; seek FH, 5, 0; # This will start reading data after 5 bytes. $/ = undef; $out = <FH>; print $out; close FH;
Вывод: это мой мир
Perl Unlink
Unlink используется для удаления файла.
unlink("filename or complete file path");
Обработка каталогов:
Мы также можем обрабатывать каталоги, через которые мы можем обрабатывать несколько файлов.
давайте посмотрим, как открыть каталог. Мы можем использовать методы opendir и readdir.
opendir(DIR,"C:\Program Files\"); #DIR is the directory handler. while(readdir(DIR)) # loop through the output of readdir to print the directory contents. { print "$_n"; } closedir(DIR); #used to close the directory handler.
или
opendir(DIR,"C:\Program Files\"); @content=readdir(DIR); foreach(@content) { print "$_n"; } closedir(DIR);
Это напечатает все доступные файлы в этом каталоге.
Тесты Perl-файлов и их значение
-р |
Чтобы проверить, доступен ли файл / каталог для чтения текущему пользователю / группе |
-w |
Чтобы проверить, доступен ли файл / каталог для записи текущему пользователю / группе |
-Икс |
Чтобы проверить, является ли файл / каталог исполняемым текущим пользователем / группой |
-о |
Чтобы проверить, принадлежит ли файл / каталог текущему пользователю |
-Р |
Чтобы проверить, доступен ли файл / каталог для этого реального пользователя / группы |
-W |
Чтобы проверить, доступен ли файл / каталог для записи этому реальному пользователю / группе |
-ИКС |
Чтобы проверить, является ли файл / каталог исполняемым этим реальным пользователем / группой |
-О |
Чтобы проверить, принадлежит ли файл / каталог этому реальному пользователю |
-e |
Чтобы проверить, существует ли имя файла / каталога |
-z |
Чтобы проверить, существует ли файл и имеет ли он нулевой размер (всегда false для каталогов) |
-f |
Чтобы проверить, является ли запись простым файлом |
-d |
Чтобы проверить, является ли Entry каталогом |
-l |
Чтобы проверить, является ли Entry символической ссылкой |
-S |
Чтобы проверить, является ли Entry сокетом |
-п |
Чтобы проверить, является ли Entry именованным каналом («FIFO») |
-b |
Чтобы проверить, является ли Entry блочным специальным файлом (например, монтируемым диском) |
-с |
Чтобы проверить, является ли Entry специальным символьным файлом (например, устройством ввода-вывода) |
-u |
Чтобы проверить, установлен ли файл или каталог setuid |
-г |
Чтобы проверить, установлен ли файл или каталог setgid |
-k |
Чтобы проверить, установлен ли в файле или каталоге липкий бит |
-t |
Данный дескриптор файла является TTY (как с помощью системной функции isatty (), имена файлов не могут быть проверены этим тестом) |
-T |
Чтобы проверить, выглядит ли файл как «текстовый» файл |
-B |
Чтобы проверить, выглядит ли файл как «двоичный» файл |
-М |
Чтобы проверить возраст модификации (измеряется в днях) файла |
-А |
Чтобы проверить возраст доступа (измеряется в днях) файла |
-С |
Чтобы проверить возраст изменения индекса (в днях) файла |
Perl подпрограмма
Что такое подпрограмма?
Подпрограммы аналогичны функциям в других языках программирования. Мы уже использовали некоторые встроенные функции, такие как print, chomp, chop и т. Д. Мы можем написать свои собственные подпрограммы на Perl. Эти подпрограммы могут быть записаны в любом месте программы; Желательно размещать подпрограммы либо в начале, либо в конце кода.
Пример подпрограмм
sub subroutine_name { Statements…; # this is how typical subroutines look like. }
Теперь, когда мы знаем, как написать подпрограмму, как мы получаем к ней доступ?
Нам нужно получить доступ к подпрограмме или вызвать ее, используя имя подпрограммы с префиксом «&».
sub display { print "this is a subroutine"; } display(); # This is how we call a subroutine
Передача параметров Perl и аргументов Perl
Подпрограммы или функции perl написаны для размещения в них повторно используемого кода. Большая часть кода многократного использования требует передачи параметров в подпрограмму. Здесь мы узнаем, как мы можем передавать аргументы в подпрограмму.
sub display { my $var=@_; # @_ is a special variable which stores the list of arguments passed. print "$var is the value passed"; } display(2,3,4); #this is how we need to pass the arguments.
Вывод:
3 переданное значение
@_ — это специальная переменная массива, в которой хранятся аргументы, переданные подпрограммам.
Perl Shift
Мы также можем использовать ключевое слово ‘shift’, которое сдвигает один параметр за раз в переменную или $ _ [0], $ _ [1]…, которая является отдельным элементом массива @_
sub display { my $var=shift; print "$var is passed"; } display("hello");
Вывод:
привет пройден
Подпрограммы обычно используются в объектно-ориентированном программировании, а также в местах, где у вас может быть больше кода для повторного использования.
Основная функция подпрограмм состоит в том, чтобы выполнить некоторую задачу и вернуть результат повторно используемого кода.
Мы можем вернуть значение из подпрограммы, используя ключевое слово return.
sub add { my $a=shift; my $b=shift; return($a+$b); } my $result=add(5,6); print $result;
Вывод:
11
$ result будет содержать значение добавленных $ a и $ b.
Мы также можем передавать хэши и массивы непосредственно в подпрограмму.
sub hash { my %hash=@_; print %hash; } %value= ( 1=>'a', 2=>'b'); &hash(%value);
Вывод:
1A2B
Мы также можем вернуть хеш или массив.
sub hashArray { my %hash=@_; print "Inside Sub-routine"; print %hash; return(%hash); } %hash=(1=>'a', 2=>'b'); my(@ret)=hashArray(%hash); print "After Sub-routine call"; print @ret;
Вывод:
Внутри подпрограммы2b1aПосле подпрограммы call2b1a
Perl Format
В Perl есть механизм, с помощью которого мы можем генерировать отчеты. Используя эту функцию, мы можем создавать отчеты именно так, как мы хотим, при печати на экране вывода или в файле. Простой формат может быть написан с использованием функций printf или sprintf, доступных в Perl.
printf "%05dn", 30;
Это будет включать ведущие нули перед числом 30, что делает общее количество цифр до 5. То же самое можно использовать для sprintf.
sprintf "%05dn", 30; # This will print the same as printf.
Используя printf и sprintf, мы можем получить большинство форматов Perl. В случае отчетов это будет трудно реализовать.
Пример отчета:
================================================== =========================
Имя Адрес Возраст Телефон
===================== ================================================== ====
Кришна Ченнаи 24 929309242
Шрути Ченнаи 24 929309232
Выше приведен пример отчета, который нам нужно печатать таким же образом на Perl. Это может быть достигнуто с помощью perl printf и perl sprintf. Это может быть эффективно реализовано с использованием формата.
Формат может быть объявлен следующим образом.
format FORMATNAME=FORMATLIST.
Здесь мы будем использовать определенный метод write, чтобы распечатать данные на экране вывода или в файл.
Символ |
Описание |
---|---|
@ |
Используется для представления начала держателя поля |
> |
Правильное выравнивание текста |
< |
Выравнивание текста по левому краю |
| |
Выравнивание по центру |
# |
Числовой, если указано несколько #. Принимается в качестве комментария, если указан один # |
, |
Десятичная точка |
^ |
Держатель начала поля также может быть использован для многострочного, а также для переноса слов |
~ |
Строка должна быть пустой, если переменная пуста |
@ * |
Несколько строк. |
($name,$addr,$age,$phone)=("krishna","chennai","24","929309242"); write; ($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); write; format STDOUT_TOP= =============================================================== NAME ADDRESS AGE PHONE =============================================================== . format STDOUT= @<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< $name, $addr, $age, $phone .
Выполните код, чтобы увидеть вывод.
Мы используем символ @ для указания начала держателя поля или строки, ‘<‘ каждого символа.
Мы используем STDOUT для печати на стандартном выходе. Мы можем изменить это на обработчик файла, который мы используем для записи данных в файл.
open(REPORT,">test.txt"); ($name,$addr,$age,$phone)=("krishna","chennai","24","929309232"); write REPORT; ($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); write REPORT; format REPORT_TOP= =============================================================== NAME ADDRESS AGE PHONE =============================================================== . format REPORT= @<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< $name, $addr, $age, $phone
Мы можем заменить «<» на «>» или «|» для изменения выравнивания текста. STDOUT_TOP используется для разработки заголовка формата. Мы также можем использовать то же самое с обработчиком файла, используя FH_TOP (FH — обработчик файла). Это выведет формат в файл, с которым мы работаем на.
Стандарты кодирования Perl
У каждого программиста будет свое чувство написания кода с использованием определенных стандартов; эти стандарты должны быть достаточно знакомы, чтобы другой программист мог правильно понимать и поддерживать код.
Написание кода просто и легко. Проблема возникает, когда ее необходимо поддерживать на более поздних этапах. При написании кода необходимо соблюдать надлежащие руководящие принципы и стандарты кодирования. Perl также определяет определенные стандарты, которые будут полезны программистам для написания кода. Рекомендуется загружать «строгий» и «модуль предупреждений» при написании кода. Каждый из этих модулей имеет свое значение. Strict заставит нас объявить переменную перед использованием, а также скажет, присутствует ли какое-либо пустое слово в вашем коде. Модуль Warnings может также использоваться путем передачи опции -w интерпретатору Perl в shebang. Предупреждения будут напечатаны на экране вывода.
#!/usr/bin/perl –w
Ниже приведены несколько списков стандартов.
- Используйте модуль «строгий» и «предупреждения».
- Удалите переменную, которая не используется.
- Имена переменных должны быть понятны другим пользователям. Пример: $ name, @fileData и т. Д.
- При написании сценария требуется документация.
- Не кодируйте никакими значениями, попробуйте извлечь их динамически или попросите пользователя ввести их во время выполнения (путь к файлу, имена файлов).
- Максимизируйте повторное использование кода. Попробуйте поместить код многократного использования в подпрограммы.
- Значение полных имен должно быть дано для подпрограмм.
- Подпрограммы должны быть написаны с соответствующими комментариями и документацией.
- Всегда инициализируйте переменные.
- Всегда проверяйте коды возврата для системных вызовов. Открытие файла может произойти, а может и не произойти. Наличие здесь кода возврата покажет состояние ошибки, если файл не существует.
Пример: открыть (FH, <file.txt «) или умереть (» не удается открыть файл $! «);
- Подпрограмма всегда должна возвращать значение.
- Открыть вьющиеся в той же строке.
- Однострочный BLOCK может быть помещен в одну строчку с фигурными.
- Используйте метки во время LOOPS, было бы легко выйти из цикла, когда это необходимо.
- Используйте подчеркивание, в то время как длинные фразы слов пишутся как имя переменной или подпрограмма.
- Попробуйте использовать простое регулярное выражение при кодировании.
Прекрасный пример со стандартами кодирования:
####################################################################### Program to read the file content # Date: 22-2-2013 # Author : Guru99 ######################################################################## #!/usr/bin/perl use strict; use warnings; my $line; open FR, "file.txt" || die("Cannot open the file $!"); while ($line=<FR>) { print $line; } # Looping file handler to print data
Perl Обработка ошибок
Что такое исключение?
Исключением является событие, которое происходит во время выполнения программы, что приведет к приостановке или прекращению вашей программы.
Обработка ошибок
Обработка ошибок — это то, о чем каждый программист должен заботиться во время программирования. Perl также предоставляет методы обработки ошибок, с помощью которых мы можем перехватить ошибку и обработать ее соответствующим образом.
Есть много способов проверить наличие ошибок в программе. Нам нужно проверить коды возврата функции, которую мы используем код. Если мы сможем правильно обработать эти коды возврата, то большая часть обработки ошибок может быть достигнута.
Что вернется в случае системных вызовов?
В случае системных вызовов возвращаемый статус будет храниться в двух специальных переменных $? И $!
$! — Это поймает номер ошибки или номер ошибки, связанный с сообщением об ошибке.
$? — Это будет содержать функцию возврата статуса системы ().
Использование оператора Perl или логического
Мы можем использовать логический или оператор для обработки ошибок при использовании системных вызовов.
Пример:
open(FH,"<test.txt");
Это откроет файл в режиме чтения, если файл существует.
Что делать, если файл отсутствует?
open(FH,"<test.txt") or die("File not exists $!"); # This will perl exit the program if the file not exists. open(FH,"<test.txt") or warn ("File not exists $!"); # This will print a warning message on STDERR
Perl Eval
Функция Eval может обрабатывать фатальные ошибки, ошибки времени компиляции, ошибки времени выполнения и те ошибки, которые в какой-то момент времени завершают работу вашего кода.
Функция Perl Eval может иметь блок кода или выражения. Evals рассматривает все, что находится в нем, как строку.
Рассмотрим ситуацию вызова подпрограммы, которая не определена в сценарии. В этой ситуации сценарий завершается с указанием «неопределенная подпрограмма и XYZ, эта ошибка может быть обработана в функции eval.
Есть много вариантов использования блока evals; Одно из таких применений — когда мы хотим загрузить модуль, специфичный для операционной системы, во время выполнения.
Пример: деление на ноль приводит к фатальной ошибке; чтобы справиться с этим, мы можем поместить код в блок evals.
$a=5; $b=0; eval { '$result=$a/$b'; } if($@) { print "$@"; # All the error codes returned by evals will get stored in $@. }
Вывод:
синтаксическая ошибка в C: Users XYZ Text.pl, строка 8, рядом с «)
{»
Выполнение C: Users XYZ Text.pl прервано из-за ошибок компиляции.
Пример: eval с использованием оператора perl die.
sub test { die "Dieing in sub test n"; } eval { test(); }; print "Caught : $@n";
Вывод:
Пойман: умирает в под-тесте
Использование Perl Try
Perl не поддерживает блоки try, catch и finally для других языков программирования. Мы все еще можем использовать их, загрузив внешний модуль Perl.
используйте Try :: Tiny;
Используя это, мы можем поместить ваш код в блок try и перехватить ошибку в блоке warn.
Вместо $ @, используемого в eval, Try :: Tiny использует $ _.
# обрабатывать ошибки с помощью обработчика catch
try { die "Die now"; } catch { warn "caught error: $_"; # not $@ };
Используя наконец.
my $y; try { die 'foo' } finally { $y = 'bar' }; try { die 'Die now' } catch { warn "Returned from die: $_" } finally { $y = 'gone' };
Вывод:
foo в C: Users XYZ Text.pl строка 4.
Мы можем использовать попробовать, поймать и, наконец, таким образом.
попробуйте {# заявление}
поймать {# заявление}
наконец-то {# заявление};
Или
try { # statement } finally { # statement };
Вывод:
Или
try { # statement } finally { # statement } catch { # statement };
Вывод:
Программирование на Perl Socket
Что такое сокет?
Сокет является средой, через которую два компьютера могут взаимодействовать в сети, используя сетевой адрес и порты.
Предположим, A (сервер) и B (клиент) — это две системы, которые должны взаимодействовать друг с другом с помощью сокетов для запуска некоторых программ.
Для реализации этого нам нужно создать сокеты как в A (сервер), так и в B (клиент), A будет в состоянии получения, а B будет в состоянии отправки.
A (Сервер):
Здесь сервер желает получить соединение от B (Клиент), выполнить некоторые задачи и отправить результат обратно B (Клиент). Когда мы выполняем код, операционная система в A пытается создать сокет и привязывает один порт к этому сокету. Затем он будет слушать от отправителя, который является B.
B (Клиент).
Здесь клиент желает отправить некоторую программу из своей системы на A (сервер) для некоторой обработки. Когда мы выполняем код, операционная система в B пытается создать сокет для связи с A (сервером), B должен указать IP-адрес и номер порта A, к которому B хочет подключиться.
Если все пойдет хорошо, обе системы будут взаимодействовать для обмена информацией через один порт. Perl также поддерживает программирование сокетов.
Perl имеет собственный API, с помощью которого можно реализовать сокеты. Чтобы упростить это, существует много модулей CPAN, использующих программы для сокетов.
Операции с сервером:
- Создать сокет
- Связать сокет с адресом и портом
- Слушайте сокет на этом адресе порта
- Примите клиентские подключения, которые пытаются подключиться, используя порт и IP-адрес сервера.
- Выполнять операции
Операции с клиентами:
- Создать сокет
- Подключитесь к серверу используя адрес порта
- Выполнять операции
Socket.io
Это один модуль для программирования сокетов, который основан на объектно-ориентированном программировании. Этот модуль не поддерживает тип сети INET, используемый в сетях.
IO :: Socket :: INET:
Этот модуль поддерживает домен INET и построен на IO :: Sockets. Все методы, доступные в IO :: Sockets, наследуются в модуле INET.
Клиент и сервер, использующие протокол TCP:
TCP — это протокол, ориентированный на соединение; мы будем использовать этот протокол для программирования сокетов.
Прежде чем продолжить, давайте посмотрим, как мы можем создать объект для модуля IO :: Socket :: INET и создать сокет.
$socket = IO::Socket::INET->new(PeerPort => 45787, PeerAddr => inet_ntoa(INADDR_BROADCAST), Proto => udp,LocalAddr => 'localhost',Broadcast => 1 ) or die "Can't create socket and bind it : $@n";
Новый метод в модуле IO :: Socket :: INET принимает хеш в качестве входного параметра для подпрограммы. Этот хэш предопределен, и нам просто нужно предоставить значения для ключей, которые мы хотим использовать. Существует список ключей, используемых этим хешем.
PeerAddr |
Адрес удаленного хоста |
PeerHost |
Синоним для PeerAddr |
PeerPort |
Удаленный порт или служба |
LocalAddr |
Адрес привязки локального хоста |
LocalHost |
Синоним для LocalAddr |
LocalPort |
Порт привязки локального хоста |
Прото |
Название протокола (или номер) |
Тип |
Тип сокета |
Слушать |
Размер очереди для прослушивания |
ReuseAddr |
Установите SO_REUSEADDR перед привязкой |
Повторное использование |
Установите SO_REUSEADDR перед привязкой |
ReusePort |
Установите SO_REUSEPORT перед привязкой |
Broadcast |
Установите SO_BROADCAST перед привязкой |
Тайм-аут |
Значение времени ожидания для различных операций |
Multihomed |
Попробуйте все адреса для многосетевых хостов |
блокировка |
Определите, будет ли соединение находиться в режиме блокировки |
Server.pl
use IO::Socket; use strict; use warnings; my $socket = new IO::Socket::INET ( LocalHost => 'localhost', LocalPort => '45655', Proto => 'tcp', Listen => 1, Reuse => 1, ); die "Could not create socket: $!n" unless $socket; print "Waiting for the client to send datan"; my $new_socket = $socket->accept(); while(<$new_socket>) { print $_; } close($socket);
Client.pl
use strict; use warnings; use IO::Socket; my $socket = new IO::Socket::INET ( PeerAddr => 'localhost', PeerPort => '45655', Proto => 'tcp', ); die "Could not create socket: $!n" unless $socket; print $socket "Hello this is socket connection!n"; close($socket);
Замечания:
При программировании сокетов нам нужно будет сначала выполнить Server.pl, а затем по отдельности client.pl в разных командных приглашениях, если мы работаем на локальном хосте.
Что такое Perl-модули и пакеты
Модули и пакеты тесно связаны друг с другом и являются независимыми. Пакет: пакет Perl также известен как пространство имен, в котором используются все уникальные переменные, такие как хеши, массивы, скаляры и подпрограммы. Модуль: Модуль представляет собой набор кода многоразового использования, в котором мы пишем подпрограммы. Эти модули могут быть загружены в программы Perl для использования подпрограмм, написанных в этих модулях.
Что такое Perl-модули?
Стандартные модули будут установлены во время установки Perl в любой системе. CPAN: Комплексная сеть архивов Perl — глобальный репозиторий модулей Perl. Наши собственные индивидуальные модули Perl, которые могут быть написаны нами. По сути, модуль при загрузке в любой скрипт экспортирует все его глобальные переменные и подпрограммы. Эти подпрограммы могут напрямую вызываться так, как если бы они были объявлены в самом скрипте. Модули Perl могут быть написаны с расширением .pm к имени файла Ex: Foo.pm. Модуль может быть написан с использованием «пакета Foo» в начале программы.
Базовый модуль Perl:
#!/usr/bin/perl package Arithmetic; sub add { my $a=$_[0]; my $b=$_[1]; return ($a+$b); } sub subtract { my $a=$_[0]; my $b=$_[1]; return ($a-$b); } 1;
Нет выхода
Чтобы использовать этот модуль Perl, мы должны поместить его в текущий рабочий каталог.
Мы можем загрузить модуль Perl, используя require или use в любом месте кода. Основное различие между require и use заключается в том, что требуется загружать модуль во время выполнения и использовать нагрузки во время компиляции.
#!/usr/bin/perl require Arithmetic; print Arithmetic::add(5,6); print Arithmetic:: subtract (5,6);
Здесь, в приведенном выше примере, мы обращаемся к подпрограммам, используя полное имя модуля.
Мы также можем получить доступ к пакету, используя «Использовать арифметику».
Экспортер:
Этот модуль имеет стандартные функции импорта методов.
#!/usr/bin/perl package Arithmetic; require Exporter; @ISA= qw(Exporter); # This is basically for implementing inheritance. @EXPORT = qw(add); @EXPORT_OK = qw(subtract); sub add { my $a=$_[0]; my $b=$_[1]; return ($a+$b); } sub subtract { my $a=$_[0]; my $b=$_[1]; return ($a-$b); } 1;
Массив @EXPORT можно использовать для передачи списка переменных и подпрограмм, которые по умолчанию будут экспортированы в вызывающую программу.
Массив @EXPORT_OK можно использовать для передачи списка переменных и подпрограмм, которые будут экспортироваться по требованию, которые пользователь должен указать при загрузке модуля.
#!/usr/bin/perl use Arithmetic qw(subtract); print add(5,6); print subtract (5,6);
По умолчанию подпрограмма add будет экспортирована. Метод вычитания не будет экспортирован, если он не указан при загрузке модуля.
Объектно-ориентированное программирование на Perl
В этом разделе мы узнаем, как создавать объектно-ориентированные модули Perl. Сначала посмотрим, что это за объект? Объект — это экземпляр, с помощью которого мы можем получить доступ, изменить и найти некоторые данные в любом модуле Perl. Это не что иное, как заставить ваш существующий пакет Perl, переменные и подпрограммы действовать как класс, объекты и методы по отношению к другим языкам программирования.
Создать класс
Мы уже знаем, как создавать модули из предыдущей темы. Цель этого класса — хранить методы и переменные. Модуль Perl будет иметь подпрограммы, которые являются методами. Нам нужно получить доступ к этим переменным и объектам подпрограмм.
Perl Constructor
Конструктор в Perl — это метод, который будет выполнять и возвращать нам ссылку с именем модуля, помеченным ссылкой. Это называется благословением класса. Мы используем определенную переменную для благословения класса perl, который является благословением.
#!/usr/bin/perl package Arithmetic; sub new { my $class=shift; my $self={}; bless $self, $class; return $self; } sub add { my $self= shift; my $a=$_[0]; my $b=$_[1]; return ($a+$b); } sub subtract { my $self= shift; my $a=$_[0]; my $b=$_[1]; return ($a-$b); } 1;
Новый метод, используемый в качестве конструктора для класса. Этот конструктор создаст для нас объект и вернется к сценарию, который вызывает этот конструктор.
#!/usr/bin/perl use Arithmetic; my $obj= Arithmetic->new(); my $result= $obj->add(5,6); print "$result"; $result = $obj->subtract(6,5); print "$result";
Здесь нам нужно понять, как создан объект. Всякий раз, когда мы пытаемся создать объект для класса, нам нужно использовать полное имя класса. Предположим, если класс perl находится в каком-то lib Math Arithmetic.pm. И, если мы хотим получить доступ к этому классу perl из каталога lib, тогда мы должны предоставить полный путь к классу при вызове скрипта.
использовать lib :: Math :: Arithmetic;
my $obj = lib::Math::Arithmetic->new();
Вот как происходит создание объекта в Perl.
@INC:
Как Perl-скрипт узнает, где находится библиотечный модуль? Perl знает только о текущем каталоге скрипта и пути встроенной библиотеки Perl. Всякий раз, когда мы используем модуль Perl, который не находится в текущем каталоге или пути библиотеки Perl, сценарий всегда будет завершаться ошибкой. Что касается @INC, это массив, который содержит все пути к каталогам, где он должен искать модули Perl. Попробуйте выполнить эту команду и посмотрите, что будет выводом.
perl –e "print @INC"
Это даст некоторый вывод, и это путь, по которому будут доступны модули lib. Всякий раз, когда мы используем какой-либо новый библиотечный модуль, нам нужно сказать Perl, интерпретатору, посмотреть, где именно находится модуль Perl.
push(@INC, "PATH TO YOUR MODULE");
Сделайте это своей первой строкой кода. Это скажет вашему переводчику изучить этот путь. или использовать
lib Arithmetic; # List here is your Perl Module location
Perl Destructor
Деструктор объекта по умолчанию вызывается в конце и до выхода из вашего скрипта. Это используется для уничтожения ваших объектов из памяти.
Сценарии оболочки PERL V / s
- Программирование на Perl не вызывает проблем переносимости, что часто встречается при использовании различных оболочек в сценариях оболочки.
- Обработка ошибок очень проста в Perl
- Вы можете писать длинные и сложные программы на Perl легко благодаря его обширности. Это отличается от Shell, который не поддерживает пространства имен, модули, объект, наследование и т. Д.
- В Shell меньше доступных для повторного использования библиотек. Ничто по сравнению с CPAN Perl
- Shell менее безопасна. Он вызывает внешние функции (такие команды, как mv, cp и т. Д. Зависят от используемой оболочки). Напротив, Perl выполняет полезную работу, используя внутренние функции.
Как PERL используется в Automation Testing
Perl широко используется в автоматизации. Возможно, это не лучший язык программирования в мире, но он лучше всего подходит для определенных типов задач. Давайте обсудим, где и почему Perl используется для автоматизации тестирования.
Тестирование хранилища
Что такое хранилище? Данные хранятся в файлах.
Предположим, у нас есть тестовый пример, связанный с хранилищем, в котором мы должны записать данные в один раздел, прочитать его и убедиться, что данные записаны правильно.
Это можно сделать вручную, но может ли ручной тестер выполнить те же 10000 раз? Это будет кошмар! Нам нужна автоматизация
Лучший инструмент для автоматизации всего, что связано с хранением, — это Perl из-за методов обработки файлов, REGEX и мощного синтаксического анализа файлов, который требует наименьшего времени выполнения по сравнению с другими языками программирования.
Зачем нам тестировать хранилище? Подумайте о больших центрах обработки данных, в которых данные будут непрерывно передаваться из одной системы в другую, и тысячи записей будут храниться в секунду. Проверка надежности такого механизма хранения имеет важное значение.
Многие компании, такие как HP, Dell, IBM и многие производители серверов, используют Perl в качестве интерфейса для тестирования функциональности в доменах хранения и сети. NetApp — одна из таких компаний, которая полностью работает с Storage и использует Perl в качестве языка программирования для автоматизации тестовых случаев.
Если вы заинтересованы в Perl Automation, было бы желательно узнать о концепциях хранения и сетей.
Тестирование сервера и сети:
PERL широко используется для мониторинга работоспособности сервера и производительности.
Рассмотрим центр обработки данных, который имеет 100 хостов (серверов). Вам необходимо подключиться к каждому хосту, выполнить некоторые команды удаленно. Вы также хотите перезагрузить систему и проверить, когда она вернется в режим онлайн.
Выполнение этой задачи вручную для всех 100 хостов станет кошмаром. Но мы можем легко автоматизировать это, используя PERL
Этапы разработки для достижения вышеуказанной автоматизации с использованием PERL
- Возьмите из файла информацию о хосте, такую как (IP, Имя пользователя и Пароль).
- Используйте Net :: SSH2 для подключения к каждой системе и установки канала для выполнения команд.
- Выполните набор необходимых команд, например: ls, dir, ifconfig, ps и т. Д.
- Перезагрузите систему.
- Подождите 10 минут для запуска системы.
- Выполните эхо-тестирование системы с помощью модуля Net :: Ping и распечатайте статус.
Мы закодируем приведенный выше сценарий.
Давайте возьмем файл с именем Input.txt, в котором будет храниться полная информация обо всех хостах, к которым нам нужно подключиться и выполнить команду.
input.txt
192.168.1.2 пароль root
192.168.1.3 пароль root
192.168.1.4 root root123
HostCheck.pl
use Net::SSH2; use Net::Ping; use strict; use warnings; my $ping = Net::Ping->new(); # Creating object for Net::Ping my $SSHObj = Net::SSH2->new(); #Creating object for Net::SSH2 open( FH, "Input.txt" ); # Opening file and placing content to FH my @hosts = <FH>; my $ip; my @ips; foreach (@hosts) { if ( $_ =~ /(.*)s+(w+)s+(.*)/ ) #Regex to get each info from file { $ip = $1; my $user = $2; my $password = $3; $SSHObj->connect($ip); print "Connecting to host -- $ip --Uname:$user --Password:$passwordn"; my $status = $SSHObj->auth_password( $user, $password ); print "$statusn"; die("unable to establish connection to -- $ip") unless ($status); my $shell = $SSHObj->channel(); print "$_n" while <$shell>; $shell->blocking(1); $shell->pty('tty'); $shell->shell(); sleep(5); #Executing the list of command on particular host. Can be any command print $shell "ls n"; print "$_n" while <$shell>; print $shell "ps n"; print "$_n" while <$shell>; print $shell "dir n"; print "$_n" while <$shell>; print $shell "init 6n"; #rebooting the system push( @ips, $ip ); } } sleep 600; foreach (@ips) { if ( $ping->ping($_) ) { print "$_ is alive.n" if $ping->ping($_); } else { print "$_ is not still up --waiting for it to come upn"; } }
Веб-тестирование
Perl не ограничивается только тестированием хранения и сети. Мы также можем выполнить веб-тестирование с использованием PERL. WWW-Mechanize — это один модуль, используемый для веб-тестирования. По сути, он не запускает браузер для проверки работоспособности веб-приложений, а использует исходный код HTML-страниц.
Мы также можем выполнить тестирование на основе браузера, используя Selenium IDE, RC, веб-драйвер. Perl поддерживается для Selenium.