How to make perl exit with an error code upon use of uninitialized-value?
up vote
0
down vote
favorite
I don't see how to make perl fail upon use of uninitialized-value. Is there a way to make this the default behavior? Thanks.
https://perlmaven.com/use-of-uninitialized-value
perl
add a comment |
up vote
0
down vote
favorite
I don't see how to make perl fail upon use of uninitialized-value. Is there a way to make this the default behavior? Thanks.
https://perlmaven.com/use-of-uninitialized-value
perl
2
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look atexit
.
– Matt Jacob
Nov 22 at 3:51
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
1
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
6
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I don't see how to make perl fail upon use of uninitialized-value. Is there a way to make this the default behavior? Thanks.
https://perlmaven.com/use-of-uninitialized-value
perl
I don't see how to make perl fail upon use of uninitialized-value. Is there a way to make this the default behavior? Thanks.
https://perlmaven.com/use-of-uninitialized-value
perl
perl
asked Nov 22 at 3:39
user1424739
88921427
88921427
2
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look atexit
.
– Matt Jacob
Nov 22 at 3:51
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
1
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
6
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10
add a comment |
2
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look atexit
.
– Matt Jacob
Nov 22 at 3:51
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
1
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
6
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10
2
2
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look at
exit
.– Matt Jacob
Nov 22 at 3:51
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look at
exit
.– Matt Jacob
Nov 22 at 3:51
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
1
1
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
6
6
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10
add a comment |
2 Answers
2
active
oldest
votes
up vote
2
down vote
Something like this perhaps:
#!/usr/bin/perl
use strict;
use warnings;
use warnings FATAL => qw[uninitialized];
use feature 'say';
my $foo;
say "Foo is $foo";
say "Don't get here";
Comment out the FATAL
line to see the standard behaviour.
add a comment |
up vote
0
down vote
Dave's answer sure is the best pick for the described use case.
Here is another solution, that demonstrates the use of the warning signal handler (see http://perldoc.perl.org/functions/warn.html).
The benefit of using a signal handler is flexibility : you can trap any kind of warning, analyze it and then implement any behavior you like. In the given use case this is an overkill, it but can be useful in more complex cases.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53423543%2fhow-to-make-perl-exit-with-an-error-code-upon-use-of-uninitialized-value%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
Something like this perhaps:
#!/usr/bin/perl
use strict;
use warnings;
use warnings FATAL => qw[uninitialized];
use feature 'say';
my $foo;
say "Foo is $foo";
say "Don't get here";
Comment out the FATAL
line to see the standard behaviour.
add a comment |
up vote
2
down vote
Something like this perhaps:
#!/usr/bin/perl
use strict;
use warnings;
use warnings FATAL => qw[uninitialized];
use feature 'say';
my $foo;
say "Foo is $foo";
say "Don't get here";
Comment out the FATAL
line to see the standard behaviour.
add a comment |
up vote
2
down vote
up vote
2
down vote
Something like this perhaps:
#!/usr/bin/perl
use strict;
use warnings;
use warnings FATAL => qw[uninitialized];
use feature 'say';
my $foo;
say "Foo is $foo";
say "Don't get here";
Comment out the FATAL
line to see the standard behaviour.
Something like this perhaps:
#!/usr/bin/perl
use strict;
use warnings;
use warnings FATAL => qw[uninitialized];
use feature 'say';
my $foo;
say "Foo is $foo";
say "Don't get here";
Comment out the FATAL
line to see the standard behaviour.
answered Nov 22 at 9:34
Dave Cross
46k33877
46k33877
add a comment |
add a comment |
up vote
0
down vote
Dave's answer sure is the best pick for the described use case.
Here is another solution, that demonstrates the use of the warning signal handler (see http://perldoc.perl.org/functions/warn.html).
The benefit of using a signal handler is flexibility : you can trap any kind of warning, analyze it and then implement any behavior you like. In the given use case this is an overkill, it but can be useful in more complex cases.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";
add a comment |
up vote
0
down vote
Dave's answer sure is the best pick for the described use case.
Here is another solution, that demonstrates the use of the warning signal handler (see http://perldoc.perl.org/functions/warn.html).
The benefit of using a signal handler is flexibility : you can trap any kind of warning, analyze it and then implement any behavior you like. In the given use case this is an overkill, it but can be useful in more complex cases.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";
add a comment |
up vote
0
down vote
up vote
0
down vote
Dave's answer sure is the best pick for the described use case.
Here is another solution, that demonstrates the use of the warning signal handler (see http://perldoc.perl.org/functions/warn.html).
The benefit of using a signal handler is flexibility : you can trap any kind of warning, analyze it and then implement any behavior you like. In the given use case this is an overkill, it but can be useful in more complex cases.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";
Dave's answer sure is the best pick for the described use case.
Here is another solution, that demonstrates the use of the warning signal handler (see http://perldoc.perl.org/functions/warn.html).
The benefit of using a signal handler is flexibility : you can trap any kind of warning, analyze it and then implement any behavior you like. In the given use case this is an overkill, it but can be useful in more complex cases.
use strict;
use warnings;
use feature "say";
local $SIG{__WARN__} = sub {
if ($_[0] =~ /^Use of uninitialized value/) {
die $_[0];
} else {
warn $_[0] ;
}
};
my $foo;
say "Foo is $foo";
say "Dont get here";
answered Nov 22 at 20:57
GMB
2,232116
2,232116
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53423543%2fhow-to-make-perl-exit-with-an-error-code-upon-use-of-uninitialized-value%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
2
What have you tried so far? You didn't include any code, so it's impossible to know. Also, take a look at
exit
.– Matt Jacob
Nov 22 at 3:51
I don’t know what to try. I want the program to fail instead of just giving a warning. This must be done with some kind of configuration of Perl at the beginning of a script. Exit won’t work.
– user1424739
Nov 22 at 4:04
1
Please edit your question and include the code you're claiming isn't working.
– Matt Jacob
Nov 22 at 4:05
6
perldoc.perl.org/warnings.html#Fatal-Warnings
– Shawn
Nov 22 at 4:14
The link from @Shawn seems to be what you want. But also see Carp::Always
– zdim
Nov 22 at 6:10