Perl: Difference between revisions
imported>HLandau mNo edit summary |
imported>Raboof document caveats running a perl script |
||
Line 1: | Line 1: | ||
== | ==Running a Perl script== | ||
Common problems and solutions: | |||
<code>Can't locate DB_File.pm in @INC (you may need to install the DB_File module)</code>: run it with <code>nix-shell -p perl -p perlPackages.DBFile --run ./myscript.pl</code> | |||
<code>./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory</code>: change the first line of the script to <code>#!/usr/bin/env -S perl</code> or start it with <code>perl ./myscript.pl</code> | |||
==Adding something from CPAN to nixpkgs== | |||
* Use the <tt>nix-generate-from-cpan.pl</tt> script (see <tt>nixpkgs/maintainers/scripts/</tt>) to generate something appropriate.<br/>Example usage: <tt>nix-generate-from-cpan.pl Devel::REPL</tt> | * Use the <tt>nix-generate-from-cpan.pl</tt> script (see <tt>nixpkgs/maintainers/scripts/</tt>) to generate something appropriate.<br/>Example usage: <tt>nix-generate-from-cpan.pl Devel::REPL</tt> |
Revision as of 10:56, 2 May 2020
Running a Perl script
Common problems and solutions:
Can't locate DB_File.pm in @INC (you may need to install the DB_File module)
: run it with nix-shell -p perl -p perlPackages.DBFile --run ./myscript.pl
./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory
: change the first line of the script to #!/usr/bin/env -S perl
or start it with perl ./myscript.pl
Adding something from CPAN to nixpkgs
- Use the nix-generate-from-cpan.pl script (see nixpkgs/maintainers/scripts/) to generate something appropriate.
Example usage: nix-generate-from-cpan.pl Devel::REPL - After reviewing the result from the previous step and making appropriate modifications, add it to
pkgs/top-level/perl-packages.nix
. Note that some things usebuildPerlPackage
while some usebuildPerlModule
. Also note the mostly-followed naming convention as well as the mostly-followed alphabetical ordering. There are plenty of examples in perl-packages.nix — use the source, Luke! - Build and test.