use std::env;
use std::ffi::CStr;
use libperl_rs::{op, Perl, PL_main_start, PL_op_name};
fn scan_ops(mut op: *const op) {
while !op.is_null() {
let ty = unsafe { (*op).op_type() } as usize;
let name = unsafe { CStr::from_ptr(PL_op_name[ty]) }
.to_str()
.unwrap_or("<utf8 error>");
println!("{op:#?} {name}");
op = unsafe { (*op).op_next as *const op };
}
}
fn main() {
let mut perl = Perl::new();
perl.parse_env_args(env::args(), env::vars());
let my_perl = perl.as_ptr();
scan_ops(PL_main_start!(my_perl));
}