I have an idea mainly from Noah Schweber's advice. I don't know is it exactly right or not?
The simple idea is a subset of a Polish space (like the real numbers) has the perfect set property if it is either countable or has a nonempty perfect subset (Kechris 1995, p. 150).
A proof from Noah Schweber' idea is as follow:
Firstly, it is trivially true for open sets, (since the definition of borel set is from the open set). If a borel subset of R is/or contains an open set, we may let it be $B(p, \epsilon)$，then in $R$ there is a $\delta < \epsilon$, such that $[p-\delta, p+\delta]$ is a close set ，and this closed set has no isolated point，and this set is perfect set. From the definition of perfect set, that is, in the field of topology, a subset of a topological space is perfect if it is closed and has no isolated points.
But for closed sets it takes some difficult work. The easiest approach, given a closed set $C$, if it doesn't contain a perfect set ,that is every point/element of $C$,let it be $c \in C$ is isolated points, but this is impossible. Because every family U of pairwise-disjoint open subsets of R is at most countable. For every isolated point of $C$, we could find an enough "small" open set $B(c, \epsilon)$, to cover the isolated point, and we could ensure all the open sets are pairwise-disjoint. So we have only at most countable isolated points. But this closed set of Borel subset is uncountable. So this closed set contains a part of uncountable closed set.
Then from (Cantor–Bendixson theorem) ,every uncountable, closed subset F of R can be represented as a disjoint union of a perfect set P and an at most countable set C.So we have a perfect set.