---
name: "B::ConstOptree"
section: "3pm"
platform: "linux"
package: "libb-perlreq-perl"
version: "0.82-8+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/B::ConstOptree"
---

# B::ConstOptree(3pm)

Optree constant folding for $^O, $^V, and $\]

## NAME

B::ConstOptree - Optree constant folding for $^O, $^V, and $\]

## SYNOPSIS

```
 $ perl -MO=ConstOptree -MO=Deparse} -e \
        'require ($^O eq "MSWin32" ? "Win32.pm" : "POSIX.pm")'
 require 'POSIX.pm';
 -e syntax OK
```

## DESCRIPTION

This module propagates constant folding for $^O, $^V, and $\] variables by installing custom PL\_check handlers for numeric and string comparison opcodes. In the handlers, references to $^O, $^V, and $\] arguments are replaced with constant terms like "linux", v5.16.1, and 5.016001, respectively.

## CAVEATS

Since regexp matching is not subject to constant folding, expressions like `"$^O =~ /win32/i"` will not be reduced.

## AUTHOR

Written by Alexey Tourbin \<at@altlinux.org\>.

## COPYING

Copyright (c) 2012 Alexey Tourbin

This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
