Skip to content

Fatalization of changing 'use VERSION' while another 'use VERSION' is in scope #23624

@jkeenan

Description

@jkeenan

Per perldoc perldeprecation, we have three deprecations actually, fatalizations) scheduled for perl-5.44 (May 2026 release). This is one of them.

=head3 Changing C<use VERSION> while another C<use VERSION> is in scope

A C<use VERSION> declaration has many implicit effects on the surrounding
scope, such as L<strict> and L<feature> flags, or importing L<builtin>
functions. Once you have a C<use VERSION> statement in scope, another
C<use VERSION> statement with a different version is now deprecated since
Perl 5.39.8, due to the increasing complexity of swapping from one
prevailing version to another.

Category: "deprecated::subsequent_use_version"

This was originally scheduled for perl-5.46; see 351de21. That was subsequently changed to perl-5.44; see 69f23a3. AFAICT we don't yet have anyone working on this, nor have we received a pull request.

Assuming we're going forward with this ... volunteers? @Leont, @ap, @leonerd (PSC) any thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions