<?xml version='1.0'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:atom="http://www.w3.org/2005/Atom" >
<channel>
	<title><![CDATA[BOL: Related items]]></title>
	<link>https://bioinformaticsonline.com/related/36185?offset=10</link>
	<atom:link href="https://bioinformaticsonline.com/related/36185?offset=10" rel="self" type="application/rss+xml" />
	<description><![CDATA[]]></description>
	
	<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/710/how-to-install-perl-modules-manually-using-cpan-command-and-other-quick-ways</guid>
	<pubDate>Fri, 12 Jul 2013 07:20:24 -0500</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/710/how-to-install-perl-modules-manually-using-cpan-command-and-other-quick-ways</link>
	<title><![CDATA[How to install Perl modules manually, using CPAN command, and other quick ways]]></title>
	<description><![CDATA[<p>As a bioinformatics programmer, and crunchy data analyser you need to install several perl modules and dependencies. Installing Perl modules manually by resolving all the dependencies is&nbsp; tedious and annoying process. Some of the packages like GD is the real pain. <br /><br />However, Installing Perl modules using CPAN is a better solution, as it resolves all the dependencies automatically. In this article, let us review how to install Perl modules on Linux ( which is prefereced amonst bioinformatician) using both manual and CPAN method.<br /><br />When a Perl module is not installed, application will display the following error message. In this example, XML::Parser Perl module is missing.</p><p>Can't locate XML/parser.pm in @INC (@INC contains:<br />/usr/lib/perl5/5.10.0/i386-linux-thread-multi<br />/usr/lib/perl5/5.10.0<br />/usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi<br />/usr/local/lib/perl5/site_perl/5.10.0<br />/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi<br />/usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl<br />/usr/lib/perl5/site_perl/5.10.0 .)</p><p><strong>Manual Method of Perl Module Installation</strong></p><ul>
<li>Install Perl Modules Manually</li>
</ul><p>This manual method is very useful when your computer or server is not connected to the Internet.</p><p>Download Perl module: <br />Go to CPAN Search website and search for the module that you wish to download. In this example, let us search, download and install XML::Parser Perl module. I have downloaded the XML-Parser-2.36.tar.gz to /home/download<br /><br /># cd /home/download<br /># gzip -d XML-Parser-2.36.tar.gz<br /># tar xvf XML-Parser-2.36.tar<br /># cd XML-Parser-2.36<br /><br />Build the perl module: <br />Build by running Makefile.PL, remember the case sensitivity, make and make test.<br /><br /># perl Makefile.PL<br />Checking if your kit is complete...<br />Looks good<br />Writing Makefile for XML::Parser::Expat<br />Writing Makefile for XML::Parser<br /># make<br /># make test<br /><br />Install the perl module:<br />Now your package is ready to install.<br /><br /># make install<br /><br />As a newbie it looks pretty simple, and one go. But, luckily this is a very simple one module with no dependencies. Typically, Perl modules will be dependent on several other modules. Just imagine chasing all these dependencies one-by-one, thinking ... oh ye I got it. That will be very painful and annoying task. I recommend the CPAN method of installation as shown below.</p><p><strong>Install Perl Modules using CPAN automatically</strong></p><p>Logically, you should must have the CPAN perl module installed in your server or computer before you can install any other Perl modules using CPAN. I know you&nbsp; are laughing, "to install a perl module you need another perl module"&nbsp; ;)<br /><br />Lets verify whether CPAN is already installed:<br /><br />To install Perl modules using CPAN, make sure the cpan command is working. Following are the error message when CPAN module is not installed.<br /><br /># cpan<br />-bash: cpan: command not found<br /><br /># perl -MCPAN -e shell<br />Can't locate CPAN.pm in @INC (@INC contains:<br />/usr/lib/perl5/5.10.0/i386-linux-thread-multi<br />/usr/lib/perl5/5.10.0<br />/usr/local/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi<br />/usr/local/lib/perl5/site_perl/5.10.0<br />/usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi<br />/usr/lib/perl5/vendor_perl/5.10.0<br />/usr/lib/perl5/vendor_perl /usr/lib/perl5/site_perl/5.10.0 .).<br />BEGIN failed--compilation aborted.<br /><br />Install the CPAN module using yum:<br />If CPAN in not installed in your system, you can use "yum" for the rescue. Dont worry biological data cruncher, this is true we are now dependent all these tiny magicians :). <br /><br /># yum install perl-CPAN<br /><br />Output of yum install perl-CPAN command:</p><p>Loaded plugins: refresh-packagekit<br />updates-newkey&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 2.3 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />primary.sqlite.bz2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 2.4 MB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />Setting up Install Process<br />Parsing package install arguments<br /><br />Resolving Dependencies<br />Transaction Summary<br />=============================================================================<br />Install&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5 Package(s)<br />Update&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Package(s)<br />Remove&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 Package(s)<br /><br />Total download size: 1.0 M<br />Is this ok [y/N]: y<br />Downloading Packages:<br />(1/5): perl-ExtUtils-ParseXS-2.18-31.fc9.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 30 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />(2/5): perl-Test-Harness-2.64-31.fc9.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 70 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />(3/5): perl-CPAN-1.9205-31.fc9.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 217 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />(4/5): perl-ExtUtils-MakeMaker-6.36-31.fc9.i386.rpm&nbsp;&nbsp; | 284 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br />(5/5): perl-devel-5.10.0-31.fc9.i386.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 408 kB&nbsp;&nbsp;&nbsp;&nbsp; 00:00<br /><br />Installing&nbsp;&nbsp;&nbsp;&nbsp; : perl-ExtUtils-ParseXS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [1/5]<br />Installing&nbsp;&nbsp;&nbsp;&nbsp; : perl-devel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [2/5]<br />Installing&nbsp;&nbsp;&nbsp;&nbsp; : perl-Test-Harness&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [3/5]<br />Installing&nbsp;&nbsp;&nbsp;&nbsp; : perl-ExtUtils-MakeMaker&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [4/5]<br />Installing&nbsp;&nbsp;&nbsp;&nbsp; : perl-CPAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [5/5]<br /><br /><br />Installed: perl-CPAN.i386 0:1.9205-31.fc9<br />Dependency Installed:<br />&nbsp; perl-ExtUtils-MakeMaker.i386 0:6.36-31.fc9<br />&nbsp; perl-ExtUtils-ParseXS.i386 1:2.18-31.fc9<br />&nbsp; perl-Test-Harness.i386 0:2.64-31.fc9<br />&nbsp; perl-devel.i386 4:5.10.0-31.fc9<br />Complete!<br /><br />Configure cpan the first time:<br />Once the CPAN is installed, you need to configure it by executing cpan, you should set some configuration parameters as shown below. I have shown only the important configuration parameters below. Accept all the default values by pressing enter.<br /><br />Note: Make sure to execute &ldquo;o conf commit&rdquo; in the cpan prompt after the configuration to save the settings.<br /><br /># cpan<br /><br />Sorry, we have to rerun the configuration dialog for CPAN.pm due<br />to some missing parameters...<br /><br />CPAN build and cache directory? [/root/.cpan]<br />Download target directory? [/root/.cpan/sources]<br />Directory where the build process takes place? [/root/.cpan/build]<br /><br />Always commit changes to config variables to disk? [no]<br />Cache size for build directory (in MB)? [100]<br />Let the index expire after how many days? [1]<br /><br />Perform cache scanning (atstart or never)? [atstart]<br />Cache metadata (yes/no)? [yes]<br />Policy on building prerequisites (follow, ask or ignore)? [ask]<br /><br />Parameters for the 'perl Makefile.PL' command? []<br />Parameters for the 'perl Build.PL' command? []<br /><br />Your ftp_proxy? []<br />Your http_proxy? []<br />Your no_proxy? []<br />Is it OK to try to connect to the Internet? [yes]<br /><br />First, pick a nearby continent and country by typing in the number(s)<br />(1) Africa<br />(2) Asia<br />(3) Central America<br />(4) Europe<br />(5) North America<br />(6) Oceania<br />(7) South America<br />Select your continent (or several nearby continents) [] 5<br /><br />(1) Bahamas<br />(2) Canada<br />(3) Mexico<br />(4) United States<br />Select your country (or several nearby countries) [] 4<br /><br />(2) ftp://carroll.cac.psu.edu/pub/CPAN/<br />(3) ftp://cpan-du.viaverio.com/pub/CPAN/<br />(4) ftp://cpan-sj.viaverio.com/pub/CPAN/<br />(5) ftp://cpan.calvin.edu/pub/CPAN<br />(6) ftp://cpan.cs.utah.edu/pub/CPAN/<br />e.g. '1 4 5' or '7 1-4 8' [] 2-16<br /><br />cpan[1]&gt; o conf commit<br />commit: wrote '/usr/lib/perl5/5.10.0/CPAN/Config.pm'<br /><br />cpan[2]&gt; quit<br />No history written (no histfile specified).<br />Lockfile removed.<br /><br /></p><ul>
<li>Install Perl Modules using CPAN</li>
</ul><p>Hey smile please, now you are ready with CPAN and can download modules in one line command. <br /><br />You can use one of the following method to install a Perl module using cpan:<br /><br /># perl -MCPAN -e 'install Bundle::BioPerl'<br /><br />(or)<br /><br /># cpan<br />cpan shell -- CPAN exploration and modules installation (v1.9205)<br />ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)<br /><br />cpan[1]&gt; install "Bundle::BioPerl"<br /><br />In the example above, CPAN will check for&nbsp;Bundle::BioPerl dependencies and automatically resolves and installs&nbsp;Bundle::BioPerl with all the dependent Perl modules.</p><ul>
<li>Quick Ways</li>
</ul><p>Oh, look at your face.. smily hmm :). This is what your are looking for, a quick and best way to install Perl modules, Bioperl. Following are the the steps to download BioPerl in your server/computer.</p><p># sudo apt-cache search perl BioPerl</p><p>Output will be like as follows:</p><p>bioperl - Perl tools for computational molecular biology<br />bioperl-run - BioPerl wrappers: scripts<br />libbio-perl-perl - BioPerl core perl modules<br />libbio-perl-run-perl - BioPerl wrappers: modules<br />libbio-samtools-perl - Perl interface to SamTools library for DNA sequencing<br />libbiojava-java - Java API to biological data and applications (default version)<br />libbiojava3-java - Java API to biological data and applications (default version)<br />python-biopython-sql - Biopython support for the BioSQL database schema<br />libbtlib-perl - library for basic sequence manipulation<br /><br /></p><p># sudo apt-get install bioperl</p><p>If it is installed then flash the following message:</p><p>Reading package lists... Done<br />Building dependency tree&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />Reading state information... Done<br />bioperl is already the newest version.<br />0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.</p><p>In it is found not installed in your server or system them install all with dependencies.</p><p>You can use the same approach to install all the modules, and packages if required.</p><p>Thanks for reading. Best of luck for your research.</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/news/view/1737/perl-in-a-day</guid>
	<pubDate>Sat, 10 Aug 2013 21:14:03 -0500</pubDate>
	<link>https://bioinformaticsonline.com/news/view/1737/perl-in-a-day</link>
	<title><![CDATA[Perl in a day !!]]></title>
	<description><![CDATA[<p>This pdf based tutorial in good resource to understand the basic of Perl in a day</p><p><a href="http://ritg.med.harvard.edu/training/perl/RC_Perl_Intro.pdf">http://ritg.med.harvard.edu/training/perl/RC_Perl_Intro.pdf</a></p>]]></description>
	<dc:creator>Jitendra Narayan</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/view/2379</guid>
	<pubDate>Wed, 14 Aug 2013 15:43:06 -0500</pubDate>
	<link>https://bioinformaticsonline.com/view/2379</link>
	<title><![CDATA[Which Perl distribution should I choose for bioinformatics study : ActivePerl, Strawberry Perl, DWIM Perl, Citrus Perl ?]]></title>
	<description><![CDATA[<p>I'm new to bioinformatics and recently started learning Perl. I found several rival distributions available for Windows platform, which confuse me at the begining.</p><p>I google it and found that Strawberry comes with additional dev tools to compile CPAN modules if necessary. Whereas&nbsp;ActivePerl has a lot of prepackaged modules which are easier to install with PPM. In addition,&nbsp;DWIM Perl contains the standard Perl and a lot of extension and Citrus Perl is a binary distribution of Perl created for GUI application developers.&nbsp;</p><p>Now, I wonder what should I pick to get started?&nbsp;</p><p>Note: I am going to use BioPerl in near future.</p><p>http://dwimperl.com/</p><p>http://www.activestate.com/activeperl</p><p>http://www.citrusperl.com/</p><p>http://strawberryperl.com/</p>]]></description>
	<dc:creator>Manshi Raghubanshi</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/file/view/5307/clean-the-fasta-file</guid>
	<pubDate>Thu, 03 Oct 2013 14:19:14 -0500</pubDate>
	<link>https://bioinformaticsonline.com/file/view/5307/clean-the-fasta-file</link>
	<title><![CDATA[Clean the FASTA file]]></title>
	<description><![CDATA[<p>Mostly FASTA file contain NNN characters, which can be replace by random A T G C character with this perl script. It also print the FASTA sequence name, N's counts, nucleotide count and percentage details at command prompt/standard output.</p><p>&nbsp;</p>]]></description>
	<dc:creator>Jit</dc:creator>
	<enclosure url="https://bioinformaticsonline.com/file/download/5307" length="1408" type="text/x-perl" />
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22569/reverse-complement-problem-solved-with-perl</guid>
	<pubDate>Tue, 09 Jun 2015 23:37:23 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22569/reverse-complement-problem-solved-with-perl</link>
	<title><![CDATA[Reverse Complement Problem Solved with Perl]]></title>
	<description><![CDATA[<p>Question at http://rosalind.info/problems/1b/</p><p>#Find the reverse complement of a DNA string.<br />#Given: A DNA string Pattern.<br />#Return: Pattern, the reverse complement of Pattern.<br /><br />use strict;<br />use warnings;<br /><br />my $string="AAAACCCGGT";<br />my $finalString="";<br />my %hash = (<br />&nbsp;&nbsp; &nbsp;"C" =&gt; "G", <br />&nbsp;&nbsp; &nbsp;"A" =&gt; "T", <br />&nbsp;&nbsp; &nbsp;"T" =&gt; "A", <br />&nbsp;&nbsp; &nbsp;"G" =&gt; "C",<br />);<br /><br />for (my $aa=0; $aa&lt;=(length($string)-1); $aa++) {<br />&nbsp;&nbsp; &nbsp;my $char=substr $string, $aa, 1;<br />&nbsp;&nbsp; &nbsp;#print $hash{$char};<br />&nbsp;&nbsp; &nbsp;$finalString="$hash{$char}"."$finalString";<br />}<br /><br />print $finalString;<br />print "\n";</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/22572/clump-finding-problem-solved-with-perl</guid>
	<pubDate>Wed, 10 Jun 2015 00:17:17 -0500</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/22572/clump-finding-problem-solved-with-perl</link>
	<title><![CDATA[Clump Finding Problem Solved with Perl]]></title>
	<description><![CDATA[<p>The question at http://rosalind.info/problems/1d/</p><p>Script are moved to&nbsp;http://bioinformaticsonline.com/snippets/view/34633/clump-finding-problem-solved-with-perl</p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/28141/csbb-v10</guid>
	<pubDate>Wed, 29 Jun 2016 07:33:05 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/28141/csbb-v10</link>
	<title><![CDATA[CSBB-v1.0]]></title>
	<description><![CDATA[<p>CSBB is a command line based bioinformatics suite to analyze biological data acquired through varied avenues of biological experiments. CSBB is implemented in Perl, while it also leverages the use of R and python in background for specific modules. Major focus of CSBB is to allow users from biology and bioinformatics community, to get benefited by performing down-stream analysis tasks while eliminating the need to write programming code. CSBB is currently available on Linux, UNIX, MAC OS and Windows platforms.</p>
<p>Currently CSBB provides 13 modules focused on analytical tasks like performing upper-quantile normalization on expression data or convert genome wide gene expression to z-scores when comparing expression data from different platforms.</p>
<p>More at&nbsp;https://github.com/skygenomics/CSBB-v1.0</p><p>Address of the bookmark: <a href="https://github.com/skygenomics/CSBB-v1.0" rel="nofollow">https://github.com/skygenomics/CSBB-v1.0</a></p>]]></description>
	<dc:creator>Neel</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</guid>
	<pubDate>Sun, 18 Jun 2017 14:11:10 -0500</pubDate>
	<link>https://bioinformaticsonline.com/bookmarks/view/33586/genetic-mapper-svg-genetic-map-drawer</link>
	<title><![CDATA[Genetic-mapper: SVG Genetic Map Drawer]]></title>
	<description><![CDATA[<p><span>Genetic-mapper is a perl script able to draw publication-ready vectorial genetic maps.</span></p>
<p>Perl script for creating a publication-ready vectorial genetic/linkage map in Scalable Vector Graphics (SVG) format. The resulting file can either be submitted for publication and edited with any vectorial drawing software like&nbsp;<a href="https://inkscape.org/">Inkscape</a>&nbsp;and&nbsp;<a href="http://www.adobe.com/uk/products/illustrator.html">Abobe Illustrator(R)</a>.</p>
<p>The input file must be a text file with at least the marker name (ID), linkage group (LG) and the position (POS) separeted by tabulations. Additionally a logarithm of odds (LOD score) can be provided. Any extra parameter will be ignored.</p>
<pre><code>map.tsv

ID&lt;tab&gt;LG&lt;tab&gt;POS&lt;tab&gt;LOD
13519  12     0       0.250840894
2718   12     1.0     0.250840893
11040  12     1.6     0.252843341
...</code></pre>
<p>https://github.com/pseudogene/genetic-mapper</p><p>Address of the bookmark: <a href="https://github.com/pseudogene/genetic-mapper" rel="nofollow">https://github.com/pseudogene/genetic-mapper</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</guid>
	<pubDate>Tue, 26 Dec 2017 18:14:11 -0600</pubDate>
	<link>https://bioinformaticsonline.com/pages/view/34814/bioinformatics-web-application-development-with-perl</link>
	<title><![CDATA[Bioinformatics Web Application Development with Perl]]></title>
	<description><![CDATA[<div><p>Perl's second wave of adoption came from the growth of the world wide web. Dynamic web pages&mdash;the precursor to modern web applications&mdash;were easy to create with Perl and CGI. Thanks to Perl's ubiquity as a language for system administrators and its power to manipulate text, it was the default choice for web programming. Its presence everywhere made it popular and, in some ways, the duct tape of the Internet.</p><h4>Web Application Development</h4><p>The old days of CGI programs and the simple development style that represented seem clunky. Web pages have become web applications. Development has moved from generating static HTML to both client and server side programming, with rich client interfaces and powerful backends.</p><p>Perl is still well suited for developing modern web apps. The language grows more powerful and easier to use every year, the available libraries are wonderful and keep getting better, and the inventions and discoveries available in modern Perl are unsurpassed.</p><p>In particular, a modern Perl developer can do amazing things with modern Perl tools. If you still think of Perl web development as a&nbsp;<em>cgi-bin</em>&nbsp;directory full of messy scripts that spew warnings to STDERR, you're a decade out of date. Better yet, you can replace that mess piecemeal, thanks to the new tools and techniques of modern Perl. See, for example, the ever-growing list of technologies&nbsp;<a href="http://www.builtinperl.com/">Built in Perl</a>.</p><h4>Modern Perl Web Frameworks</h4><p>While the old wave of web development may have made the CGI.pm module central, modern Perl web programming follows a stricter separation of business logic, URL and request routing, and output. The days of slinging a string here, an array there, a Perl hash yonder, declaring every variable at the top of the program, and maybe making a subroutine are gone. The Perl world has seen the value of abstraction and ways to mechanize away boilerplate. Perl has dozens of frameworks and toolkits designed to make web development and deployment simpler.</p><p>Any of a dozen of these frameworks will help you do great things, but three in particular stand out. You can build web sites and web applications of tremendous value with all three. These are neither the only good possibilities (think of POE or Jifty or Continuity or...) nor the only mechanisms for web programming with Perl (see Mechanize or LWP or Mojo::UserAgent for more). Yet if you want three good options to choose between, start here.</p><h4>Catalyst</h4><p>The&nbsp;<a href="http://catalystframework.org/">Catalyst</a>&nbsp;framework is a flexible and powerful system for building small to large web apps. It uses the&nbsp;<a href="http://moose.perl.org/">Moose</a>&nbsp;object system to provide great APIs for extension and further development. It's the most mature of the modern top Perl web frameworks, yet it retains its flexibility and vibrancy. In particular, its plugin and extension ecosystem allows it to evolve to provide new and essential features.</p><p>Catalyst has embraced the Plack/PSGI standard for Perl web deployment and recent versions are exploring high-scalability, event-based request handling models.</p><h4>Dancer</h4><p>The&nbsp;<a href="http://perldancer.org/">Dancer</a>&nbsp;framework is deliberately minimal in syntax and scope, but it also has a vibrant plugin ecosystem. Dancer particularly excels for smaller sites and applications, though good programmers can build larger things with it.</p><p>The first version of Dancer was easy to use. Dancer 2 continues that ease while improving the internals and robustness of applications.</p><h4>Mojolicious</h4><p>The&nbsp;<a href="http://mojolicio.us/">Mojolicious</a>&nbsp;(Mojo) framework has a real-time design based on high performance event handling. Its focus is solving new and interesting problems in simple and effective ways, and the project has produced a lot of new code that does old things in better ways.</p><p>In particular, Mojolicious goes to great lengths to support new web standards, such as CSS 3, web sockets, and HTTP 2.</p><p>Where Catalyst embraces the CPAN fully, Mojolicious by design provides most of what an average app might need in a single download. It's still fully compatible with the CPAN, but the intention is to provide good working defaults in a package that's easy to start with. Mojo's fans are quick to praise it as fun to develop.</p><p>A modern Perl web developer should be familiar with at least one of these frameworks.</p><h4>Modern Perl Storage Mechanisms</h4><p>Perl's venerable&nbsp;<a href="http://search.cpan.org/perldoc?DBI">DBI</a>&nbsp;module has been the focal point of database access since its invention. Its design allows it to provide the same interface to huge relational databases and flat files alike through its DBD extension mechanism. Yet the DBI by itself isn't the be-all, end-all of data storage and access in Perl.</p><h4>DBIx::Class</h4><p><a href="http://search.cpan.org/perldoc?DBIx::Class">DBIx::Class</a>&nbsp;sits on top of DBI to provide an API to your database based on the concept of queries and results. This is often sufficient to remove all but the most complicated of SQL from your code, leaving you to manipulate your business models instead of the small details of how a relational database works. The power and maintainability you receive is well the small cost of the learning curve.</p><p>Even better, DBIC can manage (and even generate) your database schema for you.</p><p>Recent versions of DBIC have demonstrated that a well-written ORM can perform much better than even clever hand-written code. Because it builds on the Perl DBI, it scales everywhere from SQLite to PostgreSQL, MySQL, Oracle, and more.</p><h3>Rose::DB</h3><p>The lesser-known but no less powerful&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB::Object">Rose::DB::Object</a>&nbsp;builds on&nbsp;<a href="http://search.cpan.org/perldoc?Rose::DB">Rose::DB</a>&nbsp;to provide an object-relational mapper for Perl. While its high level features most directly compare to those of DBIx::Class, it's often measurably faster.</p><h4>NoSQL on the CPAN</h4><p>Of course the&nbsp;<a href="http://search.cpan.org/">CPAN</a>&nbsp;has modules for almost any NoSQL database or job queue or persistence mechanism you could name, and several you have never heard of. Everything you need is a quick CPAN or cpanm away!</p><h4>Modern Perl Deployment Strategies</h4><p>In the early days of the web, deploying a Perl web application meant putting one or more&nbsp;<em>.cgi</em>&nbsp;or&nbsp;<em>.pl</em>&nbsp;files in a special directory and hoping that your system administrator had everything configured correctly. The execution model was often slow and cumbersome, and accessing shared resources such as databases was often tricky.</p><p>Modern Perl has better choices. While deployment strategies are the source of many arguments, the return on your investment from learning the modern way is impressive.</p><h4>Plack/PSGI</h4><p>The PSGI specification (as exemplified by&nbsp;<a href="http://plackperl.org/">Plack</a>) describes a strategy for building Perl web apps independent of server and with the possibility to share custom processing behaviors.</p><p>In other words, it's a standard for writing Perl apps to take advantage of the huge ecosystem of Perl development available on the CPAN without tying yourself to a server like Apache, Apache 2, nginx, or anything else.</p><p>Any good modern Perl web framework (including those listed here) supports PSGI. Several deployment mechanisms exist to meet various business needs which also support PSGI. In particular, you can deploy the same application with a local testing server on your own machine as you can to your production server or servers without changing your application at all.</p><h4>mod_perl</h4><p>The older but still viable mod_perl Apache httpd module embeds Perl into the web server. This was the first widespread persistence mechanism for Perl web applications themselves and it's still popular to this day, though PSGI compliance is often the choice for new development. (PSGI handlers to use mod_perl as the backend are available.)</p><p>Modern Perl developers should familiarize themselves with PSGI and the wealth of available Plack middleware.</p><h4>Perl Web Development</h4><p>Of course no discussion of Perl web development would be complete without mentioning the strength of the CPAN. Almost any project will benefit from the wealth of freely available libraries built to solve real problems. These distributions run the gamut from full-blown web frameworks and content management systems to APIs for web services, development tools, testing systems, and interfaces to document formats and external resources.</p><p>For example, if you need to write a web service which accepts JSON data and produces Excel spreadsheets, you can glue together a few CPAN distributions and get the job done early. If you need to consume XML from a remote service and emit a PDF, you're in luck.</p><p>Perl's prowess as a general purpose programming language as well as its flexibility and power in managing text and gluing systems together make it a wonderful fit for web development. The community's adoption of modern Perl standards such as PSGI and Plack only enhance your power.</p><p>Web application development in Perl is still viable, and modern Perl tools and techniques and libraries make it more powerful and pleasant than ever.</p></div>]]></description>
	<dc:creator>Jit</dc:creator>
</item>
<item>
	<guid isPermaLink="true">https://bioinformaticsonline.com/blog/view/40736/list-of-perl-special-symbols</guid>
	<pubDate>Tue, 28 Jan 2020 06:44:27 -0600</pubDate>
	<link>https://bioinformaticsonline.com/blog/view/40736/list-of-perl-special-symbols</link>
	<title><![CDATA[List of perl special symbols !]]></title>
	<description><![CDATA[<p><span>There are some variables which have a predefined and special meaning in Perl. They are the variables that use punctuation characters after the usual variable indicator ($, @, or %), such as $_ ( explained below ).</span></p><p>Special Symbols &ndash; File handlers</p><blockquote><p>$@ Perl error string</p><p>$! Error number from C, &lsquo;errno&rsquo;</p><p>$^E Extended OS error info, such as &lsquo;CDROM tray not closed&rsquo;</p><p>$? Exit status from last process</p><p>$AGRV &ndash; name of current file</p><p>@ARGV &ndash; command line arguments</p><p>$ARGV &ndash; special file handle for command line filenames</p><p>$. &ndash; current line number</p><p>$/ - input line delimiter</p><p>$\ - output line delimiter</p><p>$% - current page number</p><p>$&amp;/${^MATCH} &ndash; last successful matching string</p><p>$`/${^PREMATCH} &ndash; the string preceding the last matching string</p><p>$&rsquo;/${^POSTMATCH} &ndash; the string following the last matching string</p><p>$1, $2, &hellip; - matching groups in the parentheses in pattern</p></blockquote><p>More at&nbsp;<a href="https://www.tutorialspoint.com/perl/perl_special_variables.htm">https://www.tutorialspoint.com/perl/perl_special_variables.htm</a></p>]]></description>
	<dc:creator>Jit</dc:creator>
</item>

</channel>
</rss>