{"id":15649860,"url":"https://github.com/book/perl-version-bumper","last_synced_at":"2025-04-13T21:21:58.546Z","repository":{"id":251128739,"uuid":"836480016","full_name":"book/Perl-Version-Bumper","owner":"book","description":"Update the version declaration of (almost) any Perl program","archived":false,"fork":false,"pushed_at":"2024-12-07T22:59:09.000Z","size":128,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-07T23:25:52.605Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/book.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-01T00:10:46.000Z","updated_at":"2024-12-07T22:59:12.000Z","dependencies_parsed_at":"2024-10-03T12:32:35.628Z","dependency_job_id":"983172e9-8728-4160-96db-f2ecde4fc119","html_url":"https://github.com/book/Perl-Version-Bumper","commit_stats":null,"previous_names":["book/perl-version-bumper"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/book%2FPerl-Version-Bumper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/book%2FPerl-Version-Bumper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/book%2FPerl-Version-Bumper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/book%2FPerl-Version-Bumper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/book","download_url":"https://codeload.github.com/book/Perl-Version-Bumper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229096062,"owners_count":18019621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T12:32:20.316Z","updated_at":"2024-12-10T16:41:28.929Z","avatar_url":"https://github.com/book.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `Perl::Version::Bumper`\n\nThis module helps \"bump\" the version of the language used in\na piece of Perl code to a more recent version.\n\nThe Perl of 2024 (v5.40) is not the Perl of 2002 (v5.8). It's a much\nimproved language, with many new and useful features for large code\nbases. So, why not start using it now?\n\n# `use VERSION`\n\nWhy even bother declaring a language version in your code?\n\nYou might have heard that Perl has amazing support for backwards\ncompatibility. You may think it's because the language is stagnating.\nIt's actually the opposite! It's just that accessing the new features\nis a bit more complicated than just using the latest `perl` binary.\n\nFrom the [feature](https://perldoc.perl.org/feature) module documentation:\n\n\u003e It is usually impossible to add new syntax to Perl without breaking\n\u003e some existing programs. This pragma provides a way to minimize that\n\u003e risk. New syntactic constructs can be enabled by use feature 'foo',\n\u003e and will be parsed only when the appropriate feature pragma is in scope.\n\nYes, you read that right. Inside your own files, on a file-by-file basis,\nyou get to decide which version of Perl you get.\n\nBehind its simple looks, `use VERSION` actually enables\nPerl's amazing support for backwards compatibility, and also\nfuels Perl's ability to continue to bring in new and sometimes\nbackwards-incompatible features. It does that by loading\n\"[version bundles](https://perldoc.perl.org/feature#FEATURE-BUNDLES)\",\nwhich enable (and sometimes disable) features that were added to the\nlanguage over time.\n\n# Not your parents' Perl\n\nWhen Perl starts, it reads your code from line 0. At line 0, Perl supports\nmost of the language features of Perl 5.8 (published in 2002). Except\nfor some hard deprecations (Perl has sometimes moved forward somewhat\nabruptly), any sensibly-written code from twenty or more years ago will\njust work.\n\nOver time, as new features were added to Perl, the ones that broke\nbackwards compatibility, or that were a bit too experimental to be made\npart of the language proper were put behind feature guards. You have to\nopt-in to them. This is what `use VERSION` does: it signals that the code\nyou wrote was against the given `VERSION` of the language.\n\nIf the first line of your code is a `use VERSION` line, you get a more\nuseful Perl, starting from line 1. That's a pretty good balance of\nbackwards compatibility versus new features. And you get to upgrade one\nfile at a time.\n\nFuture versions of Perl promise they will support those version bundles\nfor as long as technically possible. This is why a module that starts\nwith `use v5.16;` still works fine when run by `perl5.40.0`.\n\n# Bump the Perl version of your code\n\nNow that you're conviced that `use VERSION` is the way to go, you might\nwant to start using it everywhere.\n\nPicking which version to use is balancing act, with different choices\nfor different situations. A CPAN author will prefer to support a wider\nrange of Perl versions and limit themselves to somewhat older versions,\nwhile someone writing code for their company's e-commerce web site\nwill want to be on the bleeding edge, and take advantage of the latest\nimprovements to the language.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbook%2Fperl-version-bumper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbook%2Fperl-version-bumper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbook%2Fperl-version-bumper/lists"}