Skip to main content




access GCC compiler builtin functions via XS

Changes for 0.01

  • First version, released on an unsuspecting world.


Hey all!

As a recent graduate seeking a junior developer position, I received an invitation for a job interview which included a Perl coding exercise. How can i make my code better? Additionally, are there recommended best practices for documenting my progress on this exercise? I never programmed in perl, so bare with me. Thanks a lot!!

here's the task:

- read the data from a .csv file

- store data in one hash

- outputs the data as HTML, sorted by company and within the company by name

here is my code:

#!/usr/bin/perl use strict; use warnings; use Text::CSV; my $csv_file = 'Bewerbungstest.csv'; open(my $fh, '<', $csv_file) or die "Could not open file '$csv_file' $!"; my $csv = Text::CSV->new({ binary => 1 }) or die "Cannot use CSV: ".Text::CSV->error_diag(); $csv->header($fh); # Hash Wert my %data_hash; while (my $row = $csv->getline($fh)) { my $pid = $row->[0]; # PID as key my $company = $row->[1]; # Company name as key my $last_name = $row->[2]; # Employee last name my $first_name = $row->[3]; # Employee first name push @{$data_hash{$company}}, [$pid, $last_name, $first_name]; } close($fh); # Sort the company names alphabetically foreach my $company (sort keys %data_hash) { @{$data_hash{$company}} = sort {$a->[1] cmp $b->[1]} @{$data_hash{$company}}; } # HTML Output open(HTML, '>', 'output.html') or die "Could not open file: $!"; print HTML "<html>\n"; print HTML "<head>\n"; print HTML "<title>Employee List</title>\n"; print HTML "</head>\n"; print HTML "<body>\n"; print HTML "<h1>User Liste</h1>\n"; print HTML "<table border='1'>\n"; print HTML "<tr><th>PID</th><th>Company</th><th>Last Name</th><th>First Name</th>\n"; foreach my $company (sort keys %data_hash) { foreach my $entry (@{$data_hash{$company}}) { my ($pid, $last_name, $first_name,) = @$entry; print HTML "<tr>\n"; print HTML "<td>$pid</td>\n"; print HTML "<td>$company</td>\n"; print HTML "<td>$last_name</td>\n"; print HTML "<td>$first_name</td>\n"; print HTML "</tr>\n"; } } print HTML "</table>\n"; print HTML "</body>\n"; print HTML "</html>\n"; close(HTML); print "HTML file erfolgreich generiert\n"; 

submitted by /u/stayin_alive23
[link] [comments]



Data objects for login.

Changes for 0.02 - 2024-03-19T14:01:19+01:00

  • Regen example file.
  • Rewrite to new Data::HashType@0.04 with added 'valid_from' parameter.


Random hash type objects.

Changes for 0.03 - 2024-03-19T13:59:34+01:00

  • Add support for Data::HashType@0.04.



Data objects for hash type.

Changes for 0.04 - 2024-03-19T13:12:38+01:00

  • API CHANGE: Add 'valid_from' and 'valid_to' parameters. 'active' parameter will be removed in future. And 'valid_from' will be required in future.
  • Add DESCRIPTION section to doc.


An open source web-based network management tool.

Changes for 2.074000 - 2024-03-19

  • NEW FEATURES
  • BUG FIXES


I have inherited some perl scripts that I've generally been able to edit well enough with my knowledge from other languages, but I need to make a change that has me stumped.

The user wants the output that happens from this loop to be reversed.

for ($nn=0;$nn<=$range_max;$nn++) { my $range=sprintf("%02d",$nn); $sum_of_A += $A_EACH_RANGE{"$range"}; $sum_of_B += $B_EACH_RANGE{"$range"}; printf("\"\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n", $scale[$nn], commify($A_EACH_RANGE{"$range"}), commify($B_EACH_RANGE{"$range"}), commify($sum_of_A), commify($sum_of_B)); } 

So I figured all I had to do was start the for loop at the end like this:
for ($nn=$range_max;$nn>=0;$nn--) { 

Then I realized there's some cumulative math going on in the loop, which means the sum of everything needs to be at the top now instead of the bottom.

Now I'm stuck, I've made a few attempts like pushing it into an array so I could have the option to output in forward or reverse, but all my attempts just hang with no warnings or errors.

I figure there's a more elegant solution but my Google-fu hasn't helped.

submitted by /u/wirikidor
[link] [comments]




Randal Schwartz is guest on Flosss Weekly 765, mostly for Dart, but he also talks quite a bit about Perl.

One of the interesting management of Dart is that they have people assigned to work shifts to triage and respond to issues so that requestors can get immediate feedback that at least someone saw their issue. I'll let him tell the rest of the story, but it's a good one.

submitted by /u/briandfoy
[link] [comments]




Hi,

I am using Template::Mustache in a prooted Debian in termux on Android.

It works fine, however it produces this annoying warning:

"Flock not available: 'Function not implemented': continuing in unsafe mode".

As far as I can see it ultimately comes from Path::Tiny when slurping a file.

I have tried to get rid of it with "no warnings" but that did not do the trick.

So how can I suppress this warning?

submitted by /u/ghiste
[link] [comments]



submitted by /u/niceperl
[link] [comments]


submitted by /u/oalders
[link] [comments]


Hi all! I am looking for companies currently hiring Perl developers. So far I found only a couple of them (booking, 17hats) and I was wondering if anybody knows others? Possibly in EU, but remote is also good. Thank you!

submitted by /u/Neither-Television-3
[link] [comments]



sealed.pm implements dougm’s original patch to compile method lookups for typed lexicals:

https://www.perl.com/pub/2000/06/dougpatch.html/

v5.1.5 on CPAN resolves longstanding reentrancy issues.

Internally sealed always relied on an undocumented method in B::Generate to construct the replacement B::PADOP opcode, but internally it’s invoking newPADOP, which leaves the associated padname unaddressed.

This causes segfaults in Perl_pad_push reliably, when it indexes that padname element.

In v5.1.5, the padname gets created by an XS subroutine, which does the needful.

submitted by /u/joesuf4
[link] [comments]




Is there a module that can facilitate writing something similar to DBI, where one uses a common API for many different tools, swapping one for another but keeping the rest of of the program intact ? The non OO way is that of a dispatch table, but I want to elevate my OO a bit, and allow registration of components without touching the main application.

submitted by /u/ReplacementSlight413
[link] [comments]



submitted by /u/niceperl
[link] [comments]


Webservice to connect to Onfido API

Changes for 0.006 - 2023-07-02T15:36:03+00:00

  • Add hook



Open a file for shared reading and/or writing

Changes for 4.05 - 2023-07-02

  • Fix tests with perl-5.38.0.


Fast, safe DBI connection and transaction management

Changes for 0.59

  • Fix for Windows t/load.t failures



Excel-PowerPivot-Utils-0.3


utilities for scripting Power Pivot models within Excel workbooks

Changes for 0.3
  • added "use feature 'postderef'", required for perl 5.20 and 5.22

https://metacpan.org/dist/Excel-PowerPivot-Utils



WWW-Mechanize-Chrome-0.69


automate the Chrome browser

Changes for 0.69 - 2023-03-27
  • Add documentation on the profile directory / C<profile> constructor option
  • Add --domain-reliability-option to disable one more Google ping
  • some obsolete command line options removed
  • Add --remote-allow-origins=* to fix working on Chrome 111 onwards
  • Revamp fetching of node properties
  • Redo node invalidation and retry searches - this could help when receiving NodeID=0
  • Some memory usage improvements
  • KNOWN BUGS

https://metacpan.org/dist/WWW-Mechanize-Chrome


Params-Registry-0.09_05


Housekeeping for sets of named parameters

Changes for 0.09_05
  • changed make_uri to explicitly clone URI, because $uri->canonical apparently doesn't clone anymore (or did it ever?)

https://metacpan.org/dist/Params-Registry