Skip to main content



I have a bunch of YAML config files (using YAML::XS) which are multidimensional, and the values can be HASH, ARRAY, or SCALAR. Right now, I have a kind of a template YAML that defines the layout that someone can use as a reference to write a config file. The keys and layout are the same, except instead of having values it has two keys: 1) required (boolean) and 2) type (ARRAY, HASH, STR, etc). What I would like is for a sub to just verify the tree and spit out an error on which key is the problem, but I'm getting kind of lost on trying to loop both trees together.

Here is a small example from a part of a YAML config.

split: level: 3 filter: directories: delete: - \/main.assets$ keep: - S2589004224001688 files: keep: - issue.xml - main.xml - main.pdf 

And here is a small example from the YAML config template that someone uses as a reference.
split: required: True type: HASH group: required: False type: HASH by: required: True type: STR count: required: True type: STR level: required: True type: INT filter: required: False type: HASH directories: required: False type: HASH delete: required: False type: ARRAY keep: required: False type: ARRAY files: required: False type: HASH delete: required: False type: ARRAY keep: required: False type: ARRAY 

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




Audit CPAN distributions for known vulnerabilities

Changes for 20240329.002 - 2024-03-29T12:08:01Z

  • Data update for 2024-03-29




create diffs between HTTP requests

Changes for 0.06 - 2024-03-29

  • Use "stable" instead of "experimental"


Some fun with chatgpt (note that you can get the same information with a rudimentary search across various research databases followed by statistical analysis of the tags)

When reading the chat bot response note that

legacy systems include many/most of the research tools in many fields many of the legacy systems are heavily dependent on bash for gluing their individual components many of these legacy systems include a noninsignificant amount for web programming Python / R etc just glue over code written in C and Fortran, ie they just provide an API

Prompt: can you suggest a few application areas for perl as glue in scientific component based software engineering?

Perl can be effectively used as "glue" in scientific component-based software engineering due to its strong text manipulation capabilities, mature ecosystem, and ability to interface with various systems and languages. Here are a few application areas where Perl can excel as a glue language:

1. Bioinformatics Pipelines


Perl has been traditionally strong in bioinformatics, where it is used to connect different software components for tasks like DNA sequence analysis, protein structure prediction, and genetic data processing. It can orchestrate workflows that involve calling various tools, parsing their output, and preparing it for the next step in the analysis pipeline.

2. Data Transformation and Integration


In scientific computing, there is often a need to transform data between different formats or integrate data from various sources. Perl can serve as a glue language to script these transformations and integrations, handling formats like CSV, JSON, XML, and proprietary binary formats commonly used in scientific instruments.

3. System Administration for Research Computing


Perl can automate and manage tasks in research computing environments, such as scheduling jobs on a compute cluster, monitoring resource usage, and managing file systems. It can glue together various system components, ensuring they work seamlessly to support scientific computation.

4. Legacy Scientific Software Integration


Many scientific research fields have legacy software components written in Perl or that provide Perl interfaces. Perl can be used to integrate these components with newer systems, preserving the value of previous investments in software development.

5. Automated Reporting and Visualization


Perl can be used to generate automated reports and visualizations from scientific data. By gluing together data extraction, analysis, and reporting tools, Perl scripts can produce regular, up-to-date reports or visualizations of ongoing scientific research or experiments.

Limitations to Consider


While Perl is useful in these areas, it's essential to consider its limitations. The ecosystem around Perl, particularly in scientific computing, may not be as vibrant as it once was, with many new developments occurring in other languages like Python. Therefore, while Perl remains a powerful tool for certain tasks, its role in new scientific software projects might be more limited compared to its peak usage times.

In conclusion, Perl's role as glue in scientific component-based software engineering is well established, particularly in areas where text processing and legacy system integration are paramount. However, the choice to use Perl should be balanced with considerations about the current and future needs of the project, as well as the availability of skills and community support.

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



Class library for rapid development

Changes for 1.215 - 2024-03-28

  • Quiq::Confluence::Client
  • Quiq::Database::Connection
  • Quiq::Hash
  • Quiq::Path
  • Quiq::PhotoStorage
  • Quiq::Url


Raspberry Pi GPIO Perl Modules

Changes for 0.92

  • Build failures in 0.91 distribution


Simplified abstracted chained DBI subclass

Changes for 1.15 - 2024-03-28T12:26:27-07:00

  • Carp SQL parsing errors
  • Ignore reserved words SQL parse errors when not specifying an explicit dialect
  • Add abstract() method
  • Move parsed query cache to the connection object (instead of global)


Generate complete SQL from Perl data structures

Changes for 1.09 - 2024-03-28T12:22:27-07:00

  • Slightly better handling of columns in get()





SPVM Language

Changes for 0.989094 - 2023-03-26

  • Internal Changes
  • Bug Fix
  • Incompatible Changes




Strawberry Perl is distributed with its own winlibs distribution. E.g., if the perl distribution is placed in c:/strawberry, the winlibs distribution is placed in c:/strawberry/c. May I replace this winlibs distribution with a different, newer winlibs distribution placed in c:/winlibs (for example)? Of course this will come with a path update.

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



Microsoft Teams WebHook with AdaptiveCards for formatting notifications

Changes for 1.02 - 2024-03-25

  • fix test duration check failing in start/end


Libdeflate compression library

Changes for 0.07 - 2024-03-25

  • Update libdeflate to 1.20



module for checking taint peculiarities on some CPAN testers

Changes for 0.0.1 - 2024-03-25T03:15:44Z

  • original version


SPVM Language

Changes for 0.989093 - 2023-03-25

  • Bug Fix
  • Internal Changes
  • Test Cleanup


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



Simple backend-independent plotting for PDL

Changes for 1.010 - 2024-03-24

  • fix PGPLOT to read devices correctly


Basic method declarations with signatures, without source filters

Changes for 1.14 - 2024-03-24

  • Run number tests under C locale


PDL interface to the GNU Linear Programming Kit

Changes for 0.05 - 2024-03-24T12:33:00Z

  • enforce C99 standard


create Perl client SDKs from OpenAPI specs

Changes for 0.01 - 2024-03-24

  • Released on an unsuspecting world


compact, pure-perl CSV parsing

Changes for 1.43 - 2024-03-23

  • added Data::Tools::Process module for process management
  • added daemonize() function in Data::Tools::Process
  • moved cmd_fork_exec() from Data::Tools to Data::Tools::Process


Tab expand and unexpand with ANSI sequence

Changes for 1.05 - 2024-03-23T11:39:37Z

  • do not convert single space to tab by default
  • introduce "minimum" config parameter to set minimum number of spaces to be converted


Tags helper for HTML container.

Changes for 0.06 - 2024-03-23T11:17:28+01:00

  • Add tests.
  • Fix test message.
  • Remove dependency to Tags::Output::Raw.


Text folding library supporting ANSI terminal sequence and Asian wide characters with prohibition character handling.

Changes for 2.22 - 2024-03-23T09:22:27Z

  • Add new tabstyle (blank, triangle) and rename bar -> pin.


verify solutions for solitaire games.

Changes for 0.2600 - 2024-01-31

  • Convert to support the ASCIIfied output of Games::Solitaire::BlackHole::Solver version 0.10.0



Random hash type objects.

Changes for 0.05 - 2024-03-22T19:10:24+01:00

  • Parameter 'num_generated' rewrite to use check_required().
  • Update to Data::HashType@0.05 without 'active' parameter.


This is the explanation of what happened to Perl Author : INGENICO

https://www.youtube.com/watch?v=Qw-gBQHa3RY&list=LL&index=1

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



Locate and read records from human-edited data tables (Excel, CSV)

Changes for 0.013 - 2024-03-22

  • Fix bug in unit tests causing failure when MRO::Compat not installed


Data objects for hash type.

Changes for 0.05 - 2024-03-22T17:25:32+01:00

  • API CHANGE: Parameter 'active' is removed.
  • API CHANGE: Parameter 'valid_from' is required.
  • Fix dependencies.



CPAN.pm plugin for installing external dependencies

Changes for 0.77 - 2024-03-22

  • support for rpm --whatprovides
  • new test script rpm.t


Popping a selection list relative to a widget

Changes for 0.07

  • fixed calculation of listbox height.



Random hash type objects.

Changes for 0.04 - 2024-03-22T16:08:10+01:00

  • Add tests for valid_from.
  • Regen documentation and example.


I've finally had some more time to do some real work related to perl.social again, and there was a recent question from someone again about me actually adopting a proper ToS/CoC there.

I'm not a lawyer so I've decided as a starting point that looking at similar communities out there and so I've grabbed the Mastodon CoC to start the discussion. I do not want to wholesale put anything into place without input from the community, so I'm going to start a discussion here and on perl.social (I'll edit a link to the post once I make it).


COC/TOS

Borrowing many things from the Mastodon CoC as a astarting point (https://github.com/mastodon/mastodon/blob/main/CODE_OF_CONDUCT.md).

I am removing a few things from it, not because I don't think they're good ideas or anything but also because I want to limit the scope of the initial discussion and the amount of work for myself as I'm still currently the only moderator but once the community there gets larger or it changes that I'm not the only one maintaining things, we will hold another discussion about everything.

I've changed a few things also, specifically to add stronger language that any moderators MUST document why an action was taken. This doesn't necessarily mean that I believe that those reasons must be immediately given to an affected user, but that they must be available when requested. Specifically I'm thinking of not informing in the context of bots, spam, illegal or otherwise legally actionable content (i.e. something that's going to get me a subpeona or court case).

Other proposed ideas: 1) Some kind of regular discussion, maybe annually? on ToS/CoC type things 1a) The idea being that we require a regular discussion of anything that's happened over the last time period to avoid it being possible for something happening being "swept under the rug" or "falling through the cracks" because it didn't get the proper time given to it previously. How this should be done I have no good recommendations for, likely creating a group on perl.social to host the conversation each time? 2) ?

Contributor Covenant Code of Conduct

Our Pledge


We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Privacy


I reserve the right to collect email or other identifiable contact information, and it will never be shared to an outside party without consent except in the case of it being required by some legal process. If at any time perl.social becomes a larger organization and there is a desire to change this, I will require the removal of all such information until explicit consent is given again with such a new policy. I don't know if there's a way I can make this legally enforcable but I see it as something I do not own and therefore cannot ethically give it to another party in that kind of scenario.

Both perl.social and I are located in the USA, and therefore I believe are not directly subject to the GDPR, but as there are similar laws in other jurisdictions even within the USA, and I basically agree with the ideas involved, I will do whatever is reasonable feasible to follow them.

Our Standards


Examples of behavior that contributes to a positive environment for our community include:

  • Being respectful of differing opinions, viewpoints, and experiences
  • Giving and gracefully accepting constructive feedback
  • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
  • Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

  • The use of public and/or unwanted sexualized language or imagery, and sexual attention or advances of any kind. Consenting adults in private should be acceptable.
  • Trolling, insulting or derogatory comments, and personal or political attacks
  • Public or private harassment
  • Publishing others' private information, such as a physical or email address, without their explicit permission
  • Other conduct which could reasonably be considered inappropriate in a professional setting


Enforcement Responsibilities


Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and MUST communicate reasons for moderation decisions.

Scope


This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

Enforcement


Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [hello@joinmastodon.org](mailto:hello@joinmastodon.org). All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the reporter of any incident.

Enforcement Guidelines


Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

1. Correction


Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

2. Warning


Community Impact: A violation through a single incident or series of actions.

Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

3. Temporary Ban


Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

4. Permanent Ban


Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

Consequence: A permanent ban from any sort of public interaction within the community.

Attribution


This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.

And from the Mastodon code of conduct available at https://github.com/mastodon/mastodon/blob/main/CODE_OF_CONDUCT.md

Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder.

For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.

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



Data objects for login.

Changes for 0.03 - 2024-03-22T14:37:07+01:00

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


BrowseEntry like widget without button

Changes for 0.02

  • added -command option updated and corrected documentation


Utilities related to mineral supplements

Changes for 0.012 - 2024-03-22

  • Add mg-mg-malate, mg-mg-malate-trihydrate.


General purpose command option wrapper

Changes for v0.99.1 - 2024-03-22T09:31:18Z

  • Make tabstop configurable in -Mutil::filter module.


Implementation of various techniques used in data compression.

Changes for 0.03 - 2024-03-22

  • ADDITIONS
  • CHANGES