forked from bradfitz/campher
-
Notifications
You must be signed in to change notification settings - Fork 1
YSHCI/campher
This branch is 4 commits ahead of, 10 commits behind bradfitz/campher:master.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
수정 *** sakool999의 수정(org member인 상태) *** sakool999의 수정(org 탈퇴 상태) What do you get when you cross a Camel with a Gopher? Campher! Perl in Go. Example of the awesomeness / horror: ========= INSTALL ========= $ goinstall https://github.com/bradfitz/campher ========= EXAMPLE ========= package main import ( "fmt" "strings" "github.com/bradfitz/campher/perl" ) func main() { p := perl.NewInterpreter() p.Eval(`$foo = "bar";`) fmt.Println("foo is:", p.EvalString("$foo")) cv := p.Eval(`sub { my ($a1, $a2, $func) = @_; $func->($a1, $a2); }`).CV() var ret *SV p := perl.NewInterpreter() foo := p.Eval(`$foo = sub { my ($op, $v1, $v2) = @_; return "Perl says: " . $op->($v1, $v2); };`) concat := func(a, b string) string { return a + b } fmt.Println("concat:", foo.CV().Call(concat, "foo", "bar")) base := 0 add := func(a, b int) int { base++ return a + b + base } fmt.Println("add:", foo.CV().Call(add, 1, "40")) fmt.Println("add:", foo.CV().Call(add, 1, "40")) } ================ EXAMPLE OUTPUT ================ concat: Perl says: foobar add: Perl says: 42 add: Perl says: 43
About
Embed Perl in Go.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Go 74.2%
- C 25.8%